1

我以前从未对 UI 做过任何事情,我的任务是更改我们的内部框架标题。我们正在使用 Nimbus L&F,在我们的 UI 管理器中我已经尝试过

UIManager.put("InternalFrameTitlePane.background", Color.RED);

只是为了尝试改变一些东西。这对我不起作用,我在某处找到了另一篇关于使用 BasicInternalFrameTitlePane 创建 UI 的帖子,所以我现在有了以下代码:

public class CFrameTitleUI extends BasicInternalFrameTitlePane {

    public CFrameTitleUI(JInternalFrame f)
    {
        super(f);
    }

    @Override
    public void paintTitleBackground(Graphics g)
    {
        g.setColor(Color.RED);
        g.fillRect(0, 0, getWidth(), getHeight());
    }
}

但现在我有了这个,我不知道该怎么办。我尝试使用它的setUI()方法在内部框架中设置 UI,但这是它的标题栏,所以我确定那是错误的。我接下来尝试了

UIManager.put("InternalFrameTitlePane.background", CFrameTitleUI.getClass().getName());

UIManager.put("InternalFrameTitlePane", CFrameTitleUI.getClass().getName());

但什么都没有。我需要以某种方式将它绑回灵气 L&F 吗?我们设置的一些东西说"nimbusSelection"等等。

主要问题是我是否正确地为内部框架标题创建自定义 UI 以及如何应用它,谢谢。

4

1 回答 1

0

你也一样吗?

在此处输入图像描述

public class InternalFrameTest extends JFrame {

    public InternalFrameTest() {

        JDesktopPane desktop = new JDesktopPane();
        JInternalFrame frame = new JInternalFrame("AHHHH!!!!", true);
        frame.setSize(300, 300);
        frame.setVisible(true);
        frame.setOpaque(false);
        desktop.add(frame);
        setContentPane(desktop);
        setSize(600, 600);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }

    public static void main(String[] args) {
        try {
            UIManager.setLookAndFeel(NimbusLookAndFeel.class.getName());
        } catch (ClassNotFoundException|InstantiationException
                |IllegalAccessException|UnsupportedLookAndFeelException e) {
            e.printStackTrace();
        }
        UIManager.put("InternalFrame:InternalFrameTitlePane[Enabled].textForeground", Color.RED);
        new InternalFrameTest();
    }
}

当我跑步时(没有设置任何东西)

System.out.println(UIManager.getColor("InternalFrame:InternalFrameTitlePane[Enabled].textForeground"));

我明白了

"DerivedColor(color=142,143,145 parent=nimbusDisabledText offsets=0.0,0.0,0.0,0 pColor=142,143,145"

你也一样吗?

于 2014-03-30T08:12:01.777 回答