基本上,我有一个类似媒体播放器的java程序, PLAY PAUSE FAST FORWARD 选项等
其中也有键绑定。
但是,在另一个JPanel
我还有一个JTextField
,允许用户输入一些文字作为评论。
如果用户决定撰写某些文字,则此JTextField
会被重点关注,而且他们的关键绑定不再有效。
但如果我对所有容器和子容器执行了setFocusable(false)
,则用户无法在JTextfield
中输入文本。
我该如何解决这个问题?
答案 0 :(得分:1)
JComponent#getInputMap
默认使用WHEN_FOCUSED
。
根据您的需要,您可以使用WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
或WHEN_IN_FOCUSED_WINDOW
来更改组件所需的焦点级别,以便响应键输入
有关详细信息,请参阅JComponent#getInputMap(int)
和How to Use Key Bindings