2017-06-01 34 views
0

我正在用Java製作一個GUI,我想知道如何使已經打開的GUI窗口重新出現在桌面前端。使已打開的GUI窗口重新出現在Java桌面的前端

例如,如果我第一次按下按鈕,它會打開一個新窗口。每次我嘗試點擊按鈕時,它都會使已存在的窗口重新出現在前面,而不是顯示一個全新的窗口。如果我要關閉窗口並再次點擊按鈕,它會繼續創建另一個新窗口。

+0

一般想法 - 創建此窗口的單例實例。如果它是空的 - 創建一個,否則 - 帶到前面。 –

回答

0

以下是我該怎麼做的。創建一次您的子JFrame,並將其隱藏。每當按下按鈕時,如果隱藏了子JFrame,則顯示它並帶上child frame to the front

final JFrame child = ... 
child.setVisible(false); 
child.setDefaultCloseOperation(HIDE_ON_CLOSE); 
button.addEventListener(new ActionListener() { 
    @Override 
    public void actionPerformed(ActionEvent e) { 
     // Show the frame 
     child.setVisible(true); 
     // Move frame to front 
     child.toFront(); 
     child.repaint(); 
    } 
}); 
1

這是因爲,從我的理解,你只有按你製作的同一窗口中的按鈕你的窗口和一個實例,再現其在屏幕上的初始位置。

編寫一個方法,創建JFrame的一個實例,並在其中包含您希望包含的所有內容。然後添加要執行的方法,每次單擊(或按下)您的按鈕並將您的上一個窗口設置爲setVisible(false)

然後每次按下按鈕,都可以在屏幕上出現一個新窗口。但是要小心,如果你在初始窗口內使用全局變量來完成你想要做的事情,使用相同的變量來初始化新窗口,將不會給你想要的結果。確保使用本地變量,所以當你按下按鈕,你可以'重置'的一切。

如果您發佈您的代碼供我們查看,這將非常有幫助。試圖瞭解你的程序是如何工作的很難,只是你的問題。