我是Java的新手,但熟悉原生的Android dev,所以请耐心等待xD。我创建了一个创建JFrame的应用程序。然后我将closeOperation设置为:setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
。
它按预期执行,框架被隐藏,这就是我想要的(当我关闭时)。我需要应用程序继续运行(只有一次实例),因为我在后台运行一个执行操作的线程。
我的JFrame中我的按钮上的actionListener目前执行此操作:setVisible(false);
我的问题是,如何在隐藏JFrame之后再次最大化它?当用户点击任务栏中的最小化应用程序时,是否可以显示框架?我需要实现某种类型的监听器吗?
在此先感谢,任何建议将不胜感激
更新
要使此解决方案正常工作,您需要执行以下操作。另外看看XtremeBaumer的答案是有意义的。
在JFrame创建setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
上。
当您想最小化应用程序时(可能点击)frame.setState(Frame.ICONIFIED);
。
如果您想在frame.setState(Frame.NORMAL);
活动中再次最大化应用windowDeiconified
。
最后一件事是,如果您想在用户点击退出按钮(红色x)时最小化您的应用,请将其添加到windowClosing
事件frame.setState(Frame.ICONIFIED);
。
答案 0 :(得分:2)
this.addWindowListener(new WindowListener(){
@Override
public void windowActivated(WindowEvent e) {
}
@Override
public void windowClosed(WindowEvent e) {
}
@Override
public void windowClosing(WindowEvent e) {
setState(Frame.ICONIFIED)
}
@Override
public void windowDeactivated(WindowEvent e) {
}
@Override
public void windowDeiconified(WindowEvent e) {
this.setVisible(true);
//this should be what you want
}
@Override
public void windowIconified(WindowEvent e) {
}
@Override
public void windowOpened(WindowEvent e) {
}
});
我希望这能解决你的问题。将其添加到您的JFrame