установка Swing JInternalFrame lnf вручную - PullRequest
0 голосов
/ 02 февраля 2010
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 init, но без разницы (В отличие от этого, я мог бы изменить внешний вид JFrame пользовательского интерфейса, например, MenuItem.background в этом месте, поэтому я подумал, что это могло быть поскольку JInternalFrame не был компонентом верхнего уровня, т. е. под панелью с вкладками, возможно, его нужно было изменить в какой-то другой точке, но где?)

Любые советы о том, как правильно позвонить UIManager.put() для JInternalFrame?

Ответы [ 2 ]

3 голосов
/ 09 февраля 2010

получил это в конце концов - вызов put () прекрасно работает после создания JInternalFrame, но я сделал это до того, как добавил компонент в контейнер. Мне тогда еще нужно было установить его интерфейс:

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); 
1 голос
/ 03 февраля 2010

Я думаю, вам нужно сделать все вызовы UIManager.put перед созданием любых компонентов Swing.

...