【问题标题】:Find Active/Open Dialog Panels - Netbeans Platform查找活动/打开对话框面板 - Netbeans 平台
【发布时间】:2014-07-22 05:44:43
【问题描述】:

是否有任何特定的方法可以激活/打开对话框面板,由代码段DialogDisplayer.getDefault().createDialog(panelDescriptor)生成

我发现WindowManager.getDefault().getRegistry().getOpened() 将返回所有当前打开的TopComponents。是否有任何类似的方法可以返回打开的Dialog 面板。

环境:Java 8u05Netbenas 8.0

【问题讨论】:

  • 请问您为什么要实现这个目标?你想对对话框做什么?
  • @padde 感谢您的关注。我有几个从DialogDisplayer.getDefault().createDialog(panelDescriptor) 方法创建的对话框。会有一种情况我需要关闭所有打开的对话框。但我没有任何关于打开对话框的参考。所以我正在寻找一种在给定时间返回列表/打开对话框集的方法。 WindowManager.getDefault().getRegistry().getOpened() 会做同样的事情,但是对于 TopComponents
  • 我不知道获取所有打开的对话框的方法。你自己打开这些对话框吗?是否可以将所有对已打开对话框的引用存储在一个集合中,并在您想全部关闭它们时遍历这些集合?
  • 存储引用对我来说也是不可能的,因为我正在从测试中创建对话框。

标签: java netbeans-platform


【解决方案1】:

终于找到了解决办法: WindowManager.getDefault().getMainWindow().getOwnedWindows() 将返回在主窗口下打开的对话框列表。

for (Window window : WindowManager.getDefault().getMainWindow().getOwnedWindows())
{
    // Close and dispose the dialog 
    window.setVisible(false);
    window.dispose();
}

【讨论】:

    【解决方案2】:

    另一种解决方案是遍历您创建的所有框架:

    for(Frame frame : Frame.getFrames())
    {
        /* Find your dialog here */
    }
    

    但合作

    WindowManager.getDefault().getMainWindow().getOwnedWindows()
    

    在我看来更干净。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-03
      • 1970-01-01
      相关资源
      最近更新 更多