Swing JCheckbox:专注于自定义图标

时间:2012-09-24 09:56:27

标签: java swing icons jcheckbox

我用过

chkBox.setIcon();
chkBox.setSelectedIcon();
chkBox.setDisabledIcon();
chkBox.setDisabledSelectedIcon();

为我的JCheckbox设置自定义图标。但现在,如果焦点移动到其中一个复选框,则它们周围没有显示任何边框或其他任何内容,这表示该复选框具有焦点。

有人知道,当自定义复选框具有焦点时,如何提供一些反馈?

由于

2 个答案:

答案 0 :(得分:2)

您的问题肯定取决于您在应用程序中使用的外观(L& F)(如果您没有设置 - 我猜您使用的是MetalLookAndFeel?)。

无论如何,可能会有很多解决方案:

  1. 检查您的JCheckBox实际上是focusablefocus painted。请注意,某些L& F可能会关闭焦点绘画 - 请检查checkBox.setFocusPainted()方法。

  2. 如果您对默认焦点绘画不满意,您可能需要创建自己的CheckBoxUI,以绘制更好的焦点指示。这需要在UI创建方面有一些基本知识。

  3. 如果您想直接在支票图标上绘制焦点指示,您可以创建自己的基于图标的实现,将其与当前检查状态一起绘制。我在other topic中发布了一个关于状态相关图标的自定义图标示例,如果你想看到一个真实的例子。

  4. 可能还有其他解决方案,但它们取决于你正在使用的L& F ......

答案 1 :(得分:0)