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)
}
您可以做一些不同的事情,具体取决于您对确切颜色的控制程度.最简单的方法是更改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类.