显示JDialog时全局禁用所有鼠标输入

时间:2011-03-08 10:14:41

标签: java swing

我想实现以下内容: 当我的应用程序执行一些批评操作或产生一些错误时,我想显示一个警告JDialog告诉用户发生了什么。

现在,因为一些错误可能会使我的应用程序处于不一致状态,直到它们被解析,我想暂时禁用鼠标事件调度到所有组件(包括JMenu,JToolbar,..),除了显示的JDialog。

有没有这样做?或者我必须从我的应用程序的所有组件中手动删除所有鼠标侦听器,并在以后重新添加它们?

2 个答案:

答案 0 :(得分:6)

使用setModal(true)将对话框设为“模态”。

答案 1 :(得分:-3)

最简单的方法是致电

frame.setEnabled(false);

其中frame是您的顶级窗口。

请注意,上面的soln可能会改变帧的外观,直到再次启用它为止。对于真正的控制,人们可以使用EventQueue。