簡體   English   中英

添加到JPanel

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM