使已打开的GUI窗口重新出现在Java桌面的前面

时间:2017-06-01 19:52:09

标签: java user-interface

我正在使用Java制作GUI,我想知道如何使已经打开的GUI窗口重新出现在桌面的前面。

例如,如果我第一次按下按钮,它将打开一个新窗口。之后我尝试单击按钮,它只是使现有的窗口重新出现在前面,而不是显示一个全新的窗口。如果我要关闭窗口并再次单击该按钮,它将继续创建另一个新窗口。

2 个答案:

答案 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 :(得分:0)

那是因为,根据我的理解,你只有一个窗口实例,按下你正在制作同一个窗口的按钮,重新出现在屏幕的初始位置。

编写一个方法,创建一个JFrame实例,其中包含您要包含的所有内容。然后在每次单击(或按下)按钮时添加要执行的方法,并将上一个窗口设置为 setVisible(false)

然后每次按下按钮,屏幕上都会出现一个新窗口。但是要小心,如果你在初始窗口中使用全局变量来做你想要做的事情,使用相同的变量来初始化新窗口,就不会给你想要的结果。确保使用本地变量,因此当您按下按钮时,您可以重置' 所有内容。

  

如果您发布代码供我们查看,那将非常有帮助。很难通过你的问题来了解你的计划是如何运作的。