[英]Java window pop-up issue
該代碼如下所示:
輸入數字后,將對img1進行一些修改,並彈出修改后的img1。 然后輸入另一個數字,將彈出新修改的img1。
問題是當新修改的img1彈出時,舊的不會關閉。 因此,當我輸入5個數字后,將打開5個窗口。
如何修改代碼,以便在出現新窗口時,舊窗口將關閉?
while(true){
System.out.println("Choose a frame: ");
int a = sc.nextInt();
if (a>12){
break;
}
//some modifications to img1 here
JFrame frame = new JFrame();
JLabel lblimage = new JLabel(new ImageIcon(img1));
frame.getContentPane().add(lblimage, BorderLayout.CENTER);
frame.setSize(848, 480);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
我將在while循環之外創建您正在使用的JFrame實例。 (或者也許包含它的方法/函數。因此,當您調用該方法時,您並不是在創建JFrame對象,您只需修改一個已經存在的對象即可。)
如果您堅持一遍又一遍地創建新的JFrame,則可以實施此操作以關閉JFrame窗口:
frame.dispatchEvent(new WindowEvent(frame, WindowEvent.WINDOW_CLOSING));
就像您已關閉窗口一樣。
為什么不試試這個:
JFrame frame = null;
while(true){
if(frame != null){
frame.dispose();
}
...
frame = new JFrame();
...
}
這樣,您應該只擁有一個JFrame
實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.