我用过
chkBox.setIcon();
chkBox.setSelectedIcon();
chkBox.setDisabledIcon();
chkBox.setDisabledSelectedIcon();
为我的 JCheckbox 设置自定义图标。但是现在,如果焦点移动到其中一个复选框,则它们周围不会显示边框或其他任何内容,这表明该复选框具有焦点。
有谁知道,当自定义复选框有焦点时如何提供一些反馈?
谢谢
您的问题肯定取决于您在应用程序中使用的外观 (L&F)(如果您没有设置 - 我猜您正在使用 MetalLookAndFeel?)。
无论如何,可能有很多解决方案:
检查您的 JCheckBox 是否实际上是focusable
和focus painted
. 请注意,某些 L&F 可能会关闭焦点绘画 - 检查checkBox.setFocusPainted()
方法。
如果您对默认的焦点绘制不满意 - 您可能想要创建自己的 CheckBoxUI 来绘制更好的焦点指示器。不过,这需要一些 UI 创建方面的基本知识。
如果您想直接在检查图标本身上绘制焦点指示,您可以创建自己的基于图标的实现,将其与当前检查状态一起绘制。如果你想看一个真实的例子,我已经在其他关于状态相关图标的主题中发布了一个自定义图标示例。
可能还有其他解决方案,但它们取决于您使用的 L&F...
您可以使用这个现成的复选框替代品: http ://codetoearn.blogspot.com/2013/01/swing-fantasy-checkbox-with-customized.html