如何禁用JFrame中的几乎所有组件?

Ren*_*ani 1 java user-interface swing

当我开始一些处理时,我想在GUI中禁用JButtons,JText,Lists等,只有一个按钮来停止处理.

干净的方法是什么?我使用setEnabled(false)逐个组件设置,但代码太大了.

我可以获取数组中的所有组件并将所有组件都设置为for循环吗?我是怎么做到的 还有另外一种方法吗?

cam*_*ckr 9

您可以使用" 禁用玻璃窗格"方法.

或者,使用带有"Processing ...."之类的消息的JOptionPane.处理完成后,关闭对话框.阅读API以获取有关如何创建选项窗格的示例,以便您可以访问所使用的实际对话框.您将需要对话框的引用,以便您可以关闭它.

编辑:

请参阅:如何使用对话框作为示例.

  • 如果您不希望用户在任何进程运行时与框架交互,那么模式对话框是正确的解决方案,并且比编写递归代码以禁用框架上的所有字段要容易得多.因此,您可以创建自定义模式对话框,而不是使用JOptionPane. (2认同)