簡體   English   中英

Java窗口彈出問題

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

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