0
UIManager.put("InternalFrame.activeTitleBackground", new ColorUIResource(new Color(207,255,247)));
UIManager.put("InternalFrame.inactiveTitleBackground", new ColorUIResource(new Color(207,255,247)));
JDesktopPane baTabbedPane = new JDesktopPane();
JInternalFrame iframe = new JInternalFrame("Cheapest To Deliver",true,true,true,true);
iframe.setSize(400,150);
baTabbedPane.add(iframe);

为什么我的内部框架的标题背景没有在启动时设置?

我已经尝试在整体JFrame初始化上设置它,但没有任何区别(相比之下,我可以更改其他JFrameui 组件的外观,例如MenuItem.background在这个位置,所以我认为这可能是因为它JInternalFrame不是顶级组件,即在选项卡式窗格,也许它需要在其他地方进行更改,但是在哪里?)

关于正确呼叫地点的任何UIManager.put()提示JInternalFrame

4

2 回答 2

3

最终得到了它 - 在创建 JInternalFrame 之后对 put() 的调用工作正常,但我在将组件添加到容器之前确实做到了。然后我仍然必须设置它的 UI:

JInternalFrame iframe = new JInternalFrame("blah",true,true,true,true);
UIManager.put("InternalFrame.activeTitleBackground", new ColorUIResource(new Color(248,250,175)));
UIManager.put("InternalFrame.inactiveTitleBackground", new ColorUIResource(new Color(248,250,175)));
javax.swing.plaf.basic.BasicInternalFrameUI ui = 
    new javax.swing.plaf.basic.BasicInternalFrameUI(iframe); 
iframe.setUI(ui); 
于 2010-02-09T12:25:13.310 回答
1

我认为您需要在创建任何 Swing 组件之前对 UIManager.put 进行所有调用。

于 2010-02-03T09:24:21.370 回答