gpt4 book ai didi

Java - 如何 "unhide"JFrame

转载 作者:行者123 更新时间:2023-11-30 02:42:41 27 4
gpt4 key购买 nike

我对 Java 很陌生,但熟悉原生 Android 开发,所以请耐心等待 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);。当您想在 windowDeiconified 事件中再次最大化应用程序时,frame.setState(Frame.NORMAL);

最后一件事,如果您还想在用户单击退出按钮(红色 x)时最小化应用程序,请将其添加到 windowClosing 事件 frame.setState(Frame.ICONIFIED );.

最佳答案

    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

关于Java - 如何 "unhide"JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41182668/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com