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);

内部フレームのタイトル背景が起動時に設定されないのはなぜですか?

全体的なinitで設定しようとしましたJFrameが、違いはありませんでした(対照的に、この場所のように他のJFrameUIコンポーネントのルックアンドフィールを変更できたので、トップレベルのコンポーネントではなかった、つまりタブ付きペイン、おそらく別の時点で変更する必要がありましたが、どこで?)MenuItem.backgroundJInternalFrame

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 に答える