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