首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >故障排除: JDialog哪一个是模态的,哪一个又不是模态的?

故障排除: JDialog哪一个是模态的,哪一个又不是模态的?
EN

Stack Overflow用户
提问于 2009-03-16 10:03:47
回答 1查看 1.4K关注 0票数 1

被这个问题难住了,但也许,只是可能,有人以前遇到过这个问题,可以给我指明正确的方向。

我有一个JDialog,用于显示一个长期运行的任务的进度,我已经明确地将其创建为具有定义所有者的模式:

代码语言:javascript
运行
复制
  progressDialog = new JDialog( ((Dialog)windowParent), true );
  ...
  progressDialog.setVisible( true );

稍后,一旦任务完成,我将再次关闭对话框:

代码语言:javascript
运行
复制
protected void done() {
  SwingUtilities.invokeLater( new Runnable() {
     public void run() {
        progressDialog.setVisible( false );
     }
  } );
}

在非常罕见的情况下,对话a)不关闭,并且b)不是真正的模态,即用户能够与(理论上的)对话后面的窗口交互。你知道这是什么原因造成的吗?不幸的是,到目前为止,这种情况很少发生,只发生在Linux系统上。这可能是一个Swing bug,或者我可能做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2009-04-16 22:09:52

尽管我不能为你的问题提供一个明确的解决方案,但我可以告诉你,我在Linux上看到了模式对话框的各种奇怪行为-其中许多依赖于适当的窗口管理器。

对于我们的销售点系统,我们最终使用了非常简约的"flwm“窗口管理器,因为它提供了最可靠和最理想的属性。但是,对于现代的Linux桌面,我不推荐使用它。

至于通道本身:如果您可以使用Java6,那么您可能希望了解一下JDK6通道的变化和增强:Sun Blog和Dialog.ModalExclusionType附带的Javadoc

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/649815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档