我有一个以全屏模式运行的简单 Swing 应用程序。我的应用程序实例化一个 JFrame
,它又实例化一个 JPanel
,其中所有绘图都是在 paintComponent
方法中完成的。我还有一个 MouseListener
监视某些事件。
其中一个事件(单击屏幕的特定区域)会触发提示。这是我显示提示的代码(请记住,这来 self 的扩展 JPanel
的类)。
int choice = JOptionPane.showConfirmDialog(this, "Are you sure you want to quit?", "Quit?", JOptionPane.YES_NO_OPTION);
if ( choice == JOptionPane.OK_OPTION ) {
dialogOpen = false;
System.exit(0);
} else {
dialogOpen = false;
repaint();
}
唯一的麻烦是...一旦这段代码运行,整个窗口就会消失。更具体地说,它看起来像是将自身最小化,因为我可以单击任务栏中的 Java 图标,它会立即弹出。但我该如何阻止它自行最小化呢?我只想显示一个简单的提示!
最佳答案
我明白了。感谢大家的有用评论(顺便问一下,这里的人们和评论是怎么回事?为什么人们会在评论中写下可以在答案中包含的所有内容?)
我不需要调用 .showConfirmDialog(this, ...)
(其中 this
是我的 JPanel
子类),而是需要调用 .showConfirmDialog(parent, ...)
(其中 parent
是我的 JFrame
子类)。然后,我在 JFrame
上添加了一个 WindowStateListener
来检测状态更改并重置窗口状态。
关于java - 为什么当我创建对话框时我的 Swing 应用程序会最小化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27116614/