设置JTabbedPane的背景颜色

Ram*_*Ram 3 java swing jtabbedpane nimbus

我正在使用Nimbus外观和感觉.我需要在JTabbedPane中更改选项卡的背景颜色和前景色,但是在JTabbedPane中没有设置颜色.我尝试了setForeground(),setForegroundAt(),setBackground()和setBackgroundAt()方法,但它不起作用.这是我的代码


public class TabbedPaneDemo extends JFrame
{
    TabbedPaneDemo()
    {
        try
        {
            UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
        }
        catch(Exception ex) {}

setLayout(new BorderLayout()); setBounds(100, 100, 800, 500); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JTabbedPane jt = new JTabbedPane(); jt.addTab("Tab1", new JPanel()); jt.addTab("Tab2", new JPanel()); jt.addTab("Tab3", new JPanel()); jt.addTab("Tab4", new JPanel()); for( int i = 0; i < jt.getComponentCount(); i++) { jt.setForegroundAt(i, Color.RED); jt.setBackgroundAt(i, Color.BLACK); } add(jt); setVisible(true); } public static void main(String args[]) { new TabbedPaneDemo(); }
Run Code Online (Sandbox Code Playgroud)

}

Rob*_*ser 9

您可以做一些不同的事情,具体取决于您对确切颜色的控制程度.最简单的方法是更改​​UIManager中的一些属性,以更改Nimbus从其他颜色中获取的颜色.我用你的代码玩了一下,发现如果我在调用UIManager.setLookAndFeel()之后输入以下代码,它会近似你在你的例子中尝试的黑色外观:

     UIManager.put("nimbusBase", new ColorUIResource(0, 0, 0));
     UIManager.put("textForeground", new ColorUIResource(255, 0, 0));
Run Code Online (Sandbox Code Playgroud)

我会留给你试验.有关实验的更多信息,请参阅此处有关于配置Nimbus的文章.请务必查看标题为"Nimbus UIDefaults Properties List"的链接.除了将颜色按摩到类似于你想要的东西之外,你将不得不开始做一些混乱的事情,比如实现自定义绘画的Painter类.