[英]Why is my JAVA GUI opening multiple windows?
如果錯誤真的很明顯,我是 GUI 的新手,我很抱歉。 我正在嘗試創建一個帶有幾個按鈕的簡單窗口,但是每次運行代碼時,它都會打開四個窗口而不是一個。 任何幫助,將不勝感激。
public class CISUC extends JFrame implements Serializable {
//interface
JFrame mainFrame;
JPanel mainPanel;
JButton createProject, manageProject,listActive, listUnfinished,listaFinished;
public CISUC(){
//interface
mainFrame = new JFrame();
mainFrame.setResizable(false);
mainPanel = new JPanel();
mainPanel.setLayout(new GridLayout(2,3));
createProject= new JButton("Create Project");
mainPanel.add(createProject);
manageProject = new JButton("Manage Project");
mainPanel.add(manageProject);
listActive = new JButton("List Active Projects");
mainPanel.add(listActive);
listUnfinished = new JButton("List Unfinished Projects");
mainPanel.add(listUnfinished);
listFinished = new JButton("Listar Finished");
mainPanel.add(listFinished);
mainFrame.setSize(800, 500);
mainFrame.add(mainPanel);
mainFrame.setVisible(true);
}
public static void main(String[] args) {
CISUC cisuc = new CISUC();
}
}
正如其他人已經告訴你的那樣,打開的框架數量沒有問題,我只是嘗試了代碼,它打開了一個 JFrame。
在我看來,您的代碼中有一些錯誤:您不需要為此目的擴展 JFrame 並實現可序列化……這樣一來,由於未使用的繼承(未使用)字段和來自父類的方法,您的應用程序變得更重. 此外(正如其他人已經告訴您的那樣),沒有與您的 JFrame 相關聯的關閉操作,因此當您按下 X 按鈕時,您的應用程序將繼續運行,直到您關閉計算機。
為避免這種情況,請添加以下語句:
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
private void addListeners(){...}
,然后在構造函數的末尾調用它代碼。我告訴你這個是因為在使用 Swing 時,如果你開始在同一個地方添加所有內容,很容易有 5000 行不可讀和不可維護的代碼!
祝你申請順利:)
PS:看看 MigLayout...我想你會喜歡它,即使它一開始看起來有點復雜。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.