簡體   English   中英

單擊按鈕打開新面板

[英]Open new panel with button clicked

Java Swing GUI:

我使用ActionListener來執行單擊按鈕時的操作。 我想要做的是單擊按鈕時,打開一個新面板,但是從其他文件加載/獲取新面板。

這是我到目前為止的內容,但我只是鏈接到另一個文件。 謝謝! =]

   public void actionPerformed(java.awt.event.ActionEvent e) {
                    //something like this...
                    loadFile(newPlane.java);
}

更新:

        inventoryDisplay.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            inventoryDisplayActionPerformed(evt);
        }


        private void inventoryDisplayActionPerformed(java.awt.event.ActionEvent evt) {
        //open a new panel by opening a new file ex: inventory.java  
        }

我問這個的原因是因為當我用netbeans創建一個GUI程序時...我不知道如何在鏈接按鈕時用“設計視圖”制作一個新的planel。 由於netbeans僅顯示主面板。

Java不能在包含的基礎上工作,因此您需要定義類並實例化它們。

您可以使用靜態工廠方法來獲取完全配置的JPanel:

public class ClassWhereStored {
    public static JPanel newJPanel(){
        JPanel panel = new JPanel();
        // configure it
        return panel;
    }
}

...

public void actionPerformed(java.awt.event.ActionEvent e) {
    JPanel panel = ClassWhereStored.newPanel()
    frame.add(panel);          
}

對於您的代碼,您需要做的是將類文件放在同一文件夾中。

即,關於以下代碼...

public void actionPerformed(java.awt.event.ActionEvent e) {
    //something like this...
    loadFile(newPlane.java);
}

...您需要編譯newPlane.java,獲取已創建的類文件,並將其放置在與嘗試“加載文件”的類相同的文件夾中。

然后,在您的類中(我假設它擴展了JFrame或JPanel),您需要這樣做,而不是loadFile:

public void actionPerformed(java.awt.event.ActionEvent e) {
    newPlane plane = new newPlane();
    add(plane);
}

通常,在同一個地方編寫類代碼會更容易。 不要忘記,您可能必須從類中刪除組件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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