java - 为什么当我创建对话框时我的 Swing 应用程序会最小化?

标签 java swing awt

我有一个以全屏模式运行的简单 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/

相关文章:

java - 二维数组网格 - 将字符放置在每个单元格的中间

java - 在java应用程序中交换鼠标按钮

java - 使用包时,找不到依赖于另一个的类,即使在同一个文件夹中

java - 正则表达式帮助 - 字符串 - JWE-766.1.pdf - 模式 - Extract 766

java - 如何重写已经创建的 JTable 方法

java - 图像不会出现在 JFrame 上

java - JFrame - 只有一部分透明

java - 如何列出 Jersey 所有已注册的 JAX-RS 实体提供者

java - 根据 JSP 上选择项中 Action 的参数注入(inject)样式属性

java - 带图标的圆形 JButton;不直接指向时会被点击;将光标设置为 HAND_CURSOR 适用于图标之外的区域