1

我制作了一个 JDialog 并且该模态大概可以正常工作

dialog.setModalityType(JDialog.ModalityType.APPLICATION_MODAL);
dialog.setVisible(true);

但后来我的问题是:

  • 我在 jcombobox.setSelection() 之后抛出 Jdialog,我需要在接受按钮中单击两次才能隐藏对话框,因为下拉弹出窗口正在消耗第一次单击以关闭自己。我通过在调用对话框之前手动调用 jcombobox.hidePopup() 来修复它,但我不明白后者是否是模态的,为什么鼠标事件会触发窗口外的东西​​?`

  • 我的主窗口以某种方式缓冲鼠标事件,因此对于那些在绘制模式对话框时未激活的鼠标事件(如前一点所发生的那样),它们似乎被缓冲并在对话框关闭后应用。这是预期的行为吗?

感谢你!

4

1 回答 1

1
  • 替换jcombobox.hidePopup("doesn't make me sence")ActionListenerItemListener添加到JComboBox

  • 通过@camickr添加RequestFocusListenerFocusOwner以正确设置

  • 为什么还有其他原因MouseListeners,也许是在将任何事件触发到JComponents您无法Focus正确设置的情况下

于 2012-05-22T18:34:04.597 回答