改变Java Swing组件焦点指示器的颜色

5

我有一个JPanel,里面包含一个JButton、一个JTextField和一个JTable,使用TAB键可以正常遍历这些组件,被选中的组件(或在JTable中是单元格)周围会出现一个小黑框表示当前获得了焦点。请问如何更改这个黑框的颜色?

1个回答

4

选择外观由每个组件的UI委托控制,详见如何设置外观和感觉

作为一个具体的例子,在某些L&Fs上,您可以在程序启动时覆盖默认值:

UIManager.put("Button.focus", Color.red);

谢谢,这让我向前迈了一步。 我试图弄清楚的是为什么一个大型应用程序中的一些 JTable 有焦点指示器而另一些没有。 我使用了:UIManager.put("Table.focusCellHighlightBorder",new BorderUIResource(new LineBorder(new Color(255,0,0))); 那些带有焦点指示器的 JTable 变成了红色,但我仍然看不到所有 JTable 上的焦点指示器。 任何想法为什么 JTable 中的单元格不会显示焦点指示器? - splatek
1
@splatek 但这是一个新问题的话题,附上你的代码... http://www.java2s.com/Code/Java/Swing-JFC/CatalogSwing-JFC.htm - mKorbel
@mKorbel 是正确的。这里有一个示例,可以使用您的边框(http://stackoverflow.com/questions/6873665/jtable-row-selection-background-problem/6874437#6874437),它可能是一个很好的sscce(http://sscce.org/)。您还可以寻找`null`边框设置。 - trashgod
@mKorbel,这对我来说都是新的东西,但我理解你的评论是要我开一个新的问题,而不是在这个问题上继续讨论。所以我就这么做了。 - splatek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接