我想制作一个Java swing按钮'not-focussable'。 该按钮根本不应该获得焦点,但应该能够接收鼠标点击。
我认为以下选项,但这些要么完全解决我的问题,要么看起来不优雅。还有其他/更好/建议的选择吗?
答案 0 :(得分:11)
所有Swing组件都有一个setFocusable方法来执行此操作:
JButton button = ...
button.setFocusable(false);
答案 1 :(得分:2)
您是否尝试调用从setFocusable()
继承的java.awt.Component
方法?
资源:
答案 2 :(得分:1)
您可以使用一个喜欢按钮的accept方法实现自己的FocusTraversalPolicy(或扩展例如ContainerOrderFocusTraversalPolicy)。
JFrame frame = new JFrame();
... /* create other components */
frame.setFocusTraversalPolicy(new ContainerOrderFocusTraversalPolicy() {
public boolean accept(Component c) {
return super.accept(c) && c!=iDontLikeYouButton;
}
});