2014-11-25 27 views
1

我有一个简单的Swing应用程序,它以全屏模式运行。我的应用程序实例化一个JFrame,然后实例化一个JPanel,其中所有绘图都在paintComponent方法中完成。我也有一个MouseListener关注某些事件。当我创建一个对话框时,为什么我的Swing应用程序会最小化?

其中一个事件(点击屏幕的某个区域)会触发提示。这里是我的代码来显示提示(请记住,这是来自我的课程扩展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图标,它会立即弹出。但是,我如何阻止它最小化本身?我想要做的只是显示一个简单的提示!

+0

弹出窗口根本不显示吗?你有任何错误? – Max 2014-11-25 00:24:38

+0

应用程序最小化应用程序启动时?或者当从JOptionPane中选择NO时,它是否会最小化? – 2014-11-25 00:25:41

+2

想要获得更快的帮助,请发布[MCVE](http://stackoverflow.com/help/mcve)(最小完整可验证示例)或[SSCCE](http://www.sscce.org/)(Short,Self包含,正确示例)。 – 2014-11-25 00:51:23

回答

1

我想通了。感谢大家的宝贵意见(与人它是什么和评论在这里,顺便说一句?怎么来的人写的一切可能去回答的评论呢?)

而不是调用.showConfirmDialog(this, ...)(其中this是我的JPanel子类),我需要拨打.showConfirmDialog(parent, ...)(其中parent是我的JFrame子类)。然后,我在JFrame上添加了一个WindowStateListener来检测状态更改并重置窗口状态。

相关问题