如何在鼠标悬停JTabbedPane选项卡时更改文本颜色?

3

我需要在鼠标悬停时更改JtabbedPane标签文本的颜色。

是否可以使用鼠标监听器实现,还是有其他属性来实现这个需求呢?

谢谢。 Jyoti

2个回答

3

没有内置的属性或方法可以完成这个功能。

一个选项是创建一个自定义的JLabel(或其他组件),添加一个MouseListener来在鼠标进入/退出时改变颜色。

例如,像这样:

class CustomMouseOverJLabel extends JLabel{
    public CustomMouseOverJLabel(String text) {
        super(text);
        addMouseListener(new MouseAdapter(){
            @Override
            public void mouseEntered(MouseEvent e) {
                setForeground(Color.BLUE);
            }
            @Override
            public void mouseExited(MouseEvent e) {
                setForeground(Color.RED);
            }               
        });
    }       
}

当您调用addTab(title, item)时,还可以设置自定义标题组件,如下所示:

yourTabbedPane.setTabComponentAt(index, new CustomMouseOverJLabel("title"));

0

选项卡教程中有一个使用自定义组件的选项卡示例,可能会有所帮助。


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