[英]Adding onto JPanel
我想知道是否可以从其他类向主JPanel添加下拉菜单,而不是从该类本身调用它。 主要是因为我和一个朋友正在从事一个个人项目,试图在不同的选项卡中创建不同的程序。
这是我们的主要GUI:
public class GUI extends JFrame {
public GUI() {
setTitle("Andy and Jack's favorite programs");
JTabbedPane jtp = new JTabbedPane();
getContentPane().add(jtp);
JPanel jp1 = new JPanel();
JLabel label1 = new JLabel();
JPanel jp2 = new JPanel();
JLabel label2 = new JLabel();
jp1.add(label1);
jtp.addTab("Andy - Encryption Program");
jp2.add(label2);
jtp.addTab("Andy - Hello World Program");
}
public static void main(String[] args) {
GUI tp = new GUI();
tp.setVisible(true);
tp.setMinimumSize(new Dimension(400, 400));
}
这是我们的标签之一:
public class encryptionPrograms extends GUI {
String[] options = new String[] { "XOR", "RSA" };
ComboBox optionsList = new JComboBox(options);
jp1.add(optionsList, BorderLayout.CENTER);
}
我不确定我是否做对了。 刚接触Java时,我们一直在使用GUI按钮等。
这里有很多“错误”,并且无需您说出向jPanel添加comboBox的意图,很难告诉您正确的方法,但是可以做到。
但是首先:在初始化变量之前,务必先声明变量,以便可以在类中的其他方法中访问它们:
public class GUI extends JFrame{
private JPanel jp1,jp2;
private JLabel label1,label2;
private JTabbedPane jtp;
public GUI() {
setTitle("Andy and Jack's favorite programs");
jtp = new JTabbedPane();
jp1 = new JPanel();
label1 = new JLabel();
jp2 = new JPanel();
label2 = new JLabel();
jp1.add(label1);
jtp.addTab("Andy - Encryption Program", jp1);
jp2.add(label2);
jtp.addTab("Andy - Hello World Program",jp2);
getContentPane().add(jtp);
}
如果您需要从另一个类访问变量,则可以为其编写get方法。
例如:
public JPanel getMainJPanel(){
return jp1;
}
现在,您可以从另一个类调用getMainJPanel(),例如,向其添加组件。 只要记住在添加更多组件之后对.revalidate()
和.repaint()
主框架进行操作即可。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.