2012-07-26 66 views
1

我得到一个任务,将带有JComboBox的Java应用程序从OS2移植到Windows。当Windows失去焦点时,JComboBox保持打开状态

OS2(JRE1.4)中的JComboBox有一个行为,当弹出窗口打开时,用户单击其他窗口,弹出窗口保持打开状态。但是当它运行在Windows(JRE1.6)中时,用户点击了其他窗口,JComboBox将自动关闭。

我如何在Windows中实现相同的行为?我希望它保持打开...

回答

2
  1. 不可能的,总是JComboBoxe的弹出隐藏在focusLost,这些changes were fixed in Java 1.4

  2. 必须创建自己的ComponentJComboBox模拟funcionalities,popup window应根据JDialog/JWindow(强烈建议不要......)

+0

谢谢!如果使用旧Java版本的JComboBox源代码,你认为它会起作用吗?哪里可以找到?我只能找到最新的一个...... – Johnny 2012-07-26 11:05:17

+0

@Johnny有两个先决条件,在JDK1.4中编译Java代码并在PC上运行,这是顶级JVM Java1.4,不值得付出努力,一个很好的选择可以使用Java Calendars弹出窗口基于JDialog/JWindow上的(大多数) – mKorbel 2012-07-26 13:04:33

+0

最后,我做了一个继承JComboBox的自定义组件,用我自己的showPopup/hidePopup替换了它的所有鼠标/键处理程序,以显示/隐藏自定义JList。不是一个优雅的解决方案,但使用最少的编码。 – Johnny 2012-08-19 10:55:39

相关问题