我正在用Java製作一個GUI,我想知道如何使已經打開的GUI窗口重新出現在桌面前端。使已打開的GUI窗口重新出現在Java桌面的前端
例如,如果我第一次按下按鈕,它會打開一個新窗口。每次我嘗試點擊按鈕時,它都會使已存在的窗口重新出現在前面,而不是顯示一個全新的窗口。如果我要關閉窗口並再次點擊按鈕,它會繼續創建另一個新窗口。
我正在用Java製作一個GUI,我想知道如何使已經打開的GUI窗口重新出現在桌面前端。使已打開的GUI窗口重新出現在Java桌面的前端
例如,如果我第一次按下按鈕,它會打開一個新窗口。每次我嘗試點擊按鈕時,它都會使已存在的窗口重新出現在前面,而不是顯示一個全新的窗口。如果我要關閉窗口並再次點擊按鈕,它會繼續創建另一個新窗口。
以下是我該怎麼做的。創建一次您的子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();
}
});
這是因爲,從我的理解,你只有按你製作的同一窗口中的按鈕你的窗口和一個實例,再現其在屏幕上的初始位置。
編寫一個方法,創建JFrame的一個實例,並在其中包含您希望包含的所有內容。然後添加要執行的方法,每次單擊(或按下)您的按鈕並將您的上一個窗口設置爲setVisible(false)。
然後每次按下按鈕,都可以在屏幕上出現一個新窗口。但是要小心,如果你在初始窗口內使用全局變量來完成你想要做的事情,使用相同的變量來初始化新窗口,將不會給你想要的結果。確保使用本地變量,所以當你按下按鈕,你可以'重置'的一切。
如果您發佈您的代碼供我們查看,這將非常有幫助。試圖瞭解你的程序是如何工作的很難,只是你的問題。
一般想法 - 創建此窗口的單例實例。如果它是空的 - 創建一個,否則 - 帶到前面。 –