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