当前位置: 首页 > 面试题库 >

设置JTabbedPane的背景色

皇甫文乐
2023-03-14
问题内容

我正在使用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();
}

}


问题答案:

您可以执行几项不同的操作,具体取决于您希望对确切颜色进行多少控制。最简单的方法是更改​​UIManager中的某些属性,以更改Nimbus派生其其他颜色的颜色。我对您的代码进行了一些尝试,发现如果将以下代码放在对UIManager.setLookAndFeel()的调用之后,它将近似您在示例中尝试的红黑外观:

     UIManager.put("nimbusBase", new ColorUIResource(0, 0, 0));
     UIManager.put("textForeground", new ColorUIResource(255, 0, 0));

我将它留给您进行实验。有关更多信息,请尝试在此处配置Nimbus 。确保您查看他的标题为“ Nimbus
UIDefaults属性列表”的链接。除了将颜色按摩成与所需颜色相似的东西外,您还必须开始做一些杂乱的事情,例如实现可自定义绘画的Painter类。



 类似资料:
  • 通过RGB值设置背景的颜色。 默认的颜色是 0x000000: // 颜色的参数可以是字符串 "#530000" 或者是十六进制数值 0x530000 controller.setBackgroundColor("#530000); //controller.setBackgroundColor(0x530000);

  • 问题内容: 如何设置JFrame的背景颜色? 问题答案: 检索框架的内容窗格,并使用从继承的方法更改颜色。 例:

  • 因此,我尝试使用getContentPane().setBackground(color.white)并尝试将table和scrollpane设置为白色。 这是唯一一个我不能改变颜色的框架,它是在另一个类中创建的- 通过这样做,我得到了另一个面板来成功地改变颜色

  • 问题内容: 当我尝试使用以下命令在Vim 中或直接在Vim中更改背景色时: …完全不影响我的背景。该选项也没有。但是,当我运行gvim时看起来还可以。 有没有一种方法可以在Vim中更改背景而不更改我的Konsole设置? 编辑 好的,guifg / guibg和ctermfg / ctermbg之间是有区别的。虽然GUI接受许多不同的颜色组合,但是cterm仅允许很少的标准颜色组合。 问题答案:

  • 问题内容: 以下代码中的行无效。为什么?我该如何解决? 问题答案: 您需要调用小部件。默认情况下,a不会填充背景。 有关更多信息,请参见该属性的文档。 如果要使用任意背景色,则需要修改小部件的调色板:

  • 当批准日期晚于今天时,我试图更改行的颜色。此时,行应该被涂成红色……知道为什么这段代码不能工作吗?