我需要将键盘输入焦点保持在JPanel内的单个组件上。它适用于带有屏幕键盘的应用程序。
答案 0 :(得分:1)
不确定我是否真的理解这个问题。但你可以尝试类似的东西:
otherComponents.setFocusable( false );
您可能还需要使用自定义FocusTraversalPolicy。
如果您需要更多帮助,请发布展示问题的SSCCE。
答案 1 :(得分:1)
按下屏幕键盘上的按钮后,最好将焦点重新放回到组件(component.grabFocus()
)。
或者你可以设置焦点监听器(component.addFocusListener(FocusListener l)
)并且永远不要通过在focusLost()
的{{1}}方法中调用grabFocus()来放开焦点。
答案 2 :(得分:0)
这会让您在打开框架时专注于 singleComponent ,而无需更改其他内容的焦点政策:singleComponent.requestFocusInWindow();
由于焦点不会冻结,您需要setFocusable(false)用于其他组件,如camicr建议。
答案 3 :(得分:-1)
猜猜:看看InputVerifier
。