繁体   English   中英

更改选项卡查找JTabbedpane

[英]Change tab look for JTabbedpane

如何删除或更改这些标签周围边框的颜色?

另外,当鼠标悬停在选项卡上时,选项卡文本是否可以更改颜色?

在此处输入图片说明

当鼠标悬停在其上时,选项卡文本是否可以更改颜色?

本答案所述,您可以通过JTabbedPane.setTabComponentAt(int index,Component component)方法设置一个自定义组件来呈现选项卡标题。 因此,您可以执行以下操作:

final JTabbedPane tabbedPane = new JTabbedPane();

MouseListener mouseListener = new MouseAdapter() {            
    Color defaultColor;

    @Override
    public void mouseEntered(MouseEvent e) {
        JLabel label = (JLabel)e.getSource();
        defaultColor = label.getForeground();
        label.setForeground(Color.BLUE);
    }

    @Override
    public void mouseExited(MouseEvent e) {
        JLabel label = (JLabel)e.getSource();
        label.setForeground(defaultColor);
    }

    @Override
    public void mouseClicked(MouseEvent e) {
        JLabel label = (JLabel)e.getSource();
        Point point = SwingUtilities.convertPoint(label, e.getPoint(), tabbedPane);
        int selectedTab = tabbedPane.getUI().tabForCoordinate(tabbedPane, point.x, point.y);
        switch(e.getButton()){
            case MouseEvent.BUTTON2: tabbedPane.removeTabAt(selectedTab); break;
                default: tabbedPane.setSelectedIndex(selectedTab);
        }                
    }

};

JLabel tab1 = new JLabel("Tab1");
tab1.addMouseListener(mouseListener);    

tabbedPane.addTab(null, new JPanel());
tabbedPane.setTabComponentAt(0, tab1);

如何删除或更改这些标签周围边框的颜色?

在这种情况下,外观由边框决定。 您应该查看L&F的默认属性,看看是否允许更改此颜色。 例如,您可以执行以下代码来查看L&F的默认属性(当然是在设置L&F之后):

for(Object key : UIManager.getLookAndFeelDefaults().keySet()){
    System.out.println(key + " = " + UIManager.get(key));
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM