我如何失去对JComboBox的关注?

时间:2013-08-07 16:51:52

标签: java swing focus jcombobox keylistener

我有一个JComboBox,有一个关键的监听器。

当我点击<enter>时,我会触发一些动作,然后我需要关注JComboBox

要关注它,我可以JComboBoxObject.grabFocus();

但是transferFocus()将焦点转移到下一个元素(我不关心焦点在哪里,只是远离组合框)不起作用。

从另一个组合框中执行grabFocus()有效,但对我来说似乎是一个非常讨厌的黑客。有更好的解决方案吗?

2 个答案:

答案 0 :(得分:3)

更新:从这两个组合example开始,将这些行中的任何一行添加到actionPerformed()实现中似乎可以执行您想要的操作。

combo1.transferFocus();
combo2.requestFocusInWindow();

答案 1 :(得分:3)

我建议你先使用

  

.getNextFocusableComponent()

然后使用

  

.requestFocusInWindow()

这意味着像这样实现它,

  

JComboBox.getNextFocusableComponent()requestFocusInWindow();

一个重要的注意事项是 .getNextFocusableComponent()已经过时,但它可以更好地工作,你可以使用它但是如果你有任何其他解决方案,我宁愿不使用它。