【问题标题】:How to wait for popup menu closing in swing如何等待弹出菜单在摆动中关闭
【发布时间】:2013-04-04 04:12:04
【问题描述】:

我是 Swing 新手,我确信还有另一种方法,但由于一些 akward api 设计,我必须实现一个接收 MouseEvent 并返回结果的处理程序。我想向用户显示弹出菜单并等待它关闭并根据用户选择的值返回值。 怎么做? 提前致谢。 确定具体问题: Substance TabClos​​eCallback 接口有以下方法。

 public TabCloseKind onAreaClick(JTabbedPane tabbedPane,
          int tabIndex, MouseEvent mouseEvent);

我希望根据用户选择的内容在调用和返回值时显示弹出菜单。

【问题讨论】:

  • 出于好奇,我认为这没有必要,请说明原因

标签: java swing events mouseevent jpopup


【解决方案1】:

看看How to use Dialogs

这将允许您显示一个窗口,该窗口将在用户关闭之前一直阻塞

【讨论】:

    【解决方案2】:

    您可以在弹出类中处理关闭事件并将变量设置为您期望的数据

    yourWindow.addWindowListener(new WindowAdapter() {
    
        @Override
        public void windowClosing(WindowEvent e) {
    
            // catch what you want
        }
    });
    

    【讨论】:

      【解决方案3】:

      看看你可以通过调用JPopupMenu.addPopupMenuListener()看到的事件。

      特别是,您可以获得popupMenuWillBecomeInvisible() 电话。

      【讨论】:

      • 没关系,但我想在弹出菜单关闭之前“阻止”当前线程而不阻塞整个 ui。
      • 使用JOptionPane(默认阻止代码执行)而不是JPopup,把JButtons而不是JMenuItems放在那里,当然可以把JMenuItems放到JPanel,但是为什么要麻烦
      • 那么我认为@MadProgrammer 的回答会带你去你想去的地方。我被“弹出菜单”挂断了,但我怀疑您可以通过对话框完成所需的一切。
      猜你喜欢
      • 2012-11-08
      • 1970-01-01
      • 1970-01-01
      • 2018-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多