我有一个使用2个JFrame的java应用程序(1.4.2)。
第一个是Modal = true并出现在第二个JFrame的顶部。
第一个JFrame允许用户“打开”文件。一旦文件准备好显示,JFrame就会设置为setModal = false,而this.dispose()'d为。
这只留下屏幕上的第二个JFrame。但是,我无法与之互动。代码不会抛出任何错误,并且似乎运行得非常好。但我可以与第二个JFrame交互。退出JFrame的唯一方法是点击我的开发环境中的停止按钮。我实际上无法通过单击关闭按钮来停止JFrame,因为我甚至无法与JFrame的那部分进行交互。
有什么想法吗?
答案 0 :(得分:0)
我不知道你可以切换模态。 在模态对话框中创建一个FileChooser,完成后只需处理对话框。
答案 1 :(得分:0)
我自己也遇到了这个问题。原来,我无意中将我的JFrame的enabled属性设置为false。每当您希望用户能够与其进行交互时,请确保已启用JFrame:
jFrame.setEnabled(true);
setEnabled方法的Javadoc说:“禁用重量级容器会阻止此容器中的所有组件接收任何输入事件”,这解释了为什么Wooooo和我根本无法与我们的JFrame交互。