Java如何设置JTabbedPane标签的颜色?

下面的示例演示如何更改JTabbedPane组件中选项卡的颜色。该JTabbedPane的方法,您可以使用更改前景色和背景色分别是:

  • setForeground(Color color) 用于更改所有标签的前景色。

  • setBackground(Color color) 用于更改所有标签的背景色。

  • setForegroundAt(int index, Color color) 用于在定义的索引处更改选项卡的前景色。

  • setBackgroundAt(int index, Color color) 用于在定义的索引处更改选项卡的背景色。

package org.nhooo.example.swing;

import javax.swing.*;
import java.awt.*;

public class TabbedPaneTabColor extends JPanel {
    public TabbedPaneTabColor() {
        initializeUI();
    }

    private void initializeUI() {
        this.setLayout(new BorderLayout());
        this.setPreferredSize(new Dimension(500, 200));

        JTabbedPane pane = new JTabbedPane();
        pane.addTab("A Tab", new JPanel());
        pane.addTab("B Tab", new JPanel());
        pane.addTab("C Tab", new JPanel());
        pane.addTab("D Tab", new JPanel());

        // 将所有标签的前景色设置为黑色。
        pane.setForeground(Color.BLACK);

        // 为中的所有标签设置不同的背景色
        //JTabbedPane。从头到尾的颜色
        // 标签将是红色,绿色,黄色和橙色。
        pane.setBackgroundAt(0, Color.RED);
        pane.setBackgroundAt(1, Color.GREEN);
        pane.setBackgroundAt(2, Color.YELLOW);
        pane.setBackgroundAt(3, Color.ORANGE);

        this.add(pane, BorderLayout.CENTER);
    }

    public static void showFrame() {
        JPanel panel = new TabbedPaneTabColor();
        panel.setOpaque(true);

        JFrame frame = new JFrame("JTabbedPane Demo");
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.setContentPane(panel);
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                TabbedPaneTabColor.showFrame();
            }
        });
    }
}

下图显示了上面代码片段的结果: