[英]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.