2011-03-18 111 views
4

在我的Swing應用程序中,我在框架中使用了物質外觀。但爲了設計目的,我想用本機系統的外觀和感覺展示一個JButton。我看到我可以應用特定的用戶界面,例如:我可以將系統外觀應用於一個控件嗎?

myButton.setUI(new javax.swing.plaf.metal.MetalButtonUI()); 

但是,我可以將默認系統UI應用於此按鈕嗎?

回答

3

解決方案是自行實例化默認LookAndFeel(根本不應該根據Javadoc進行)。然後,您可以從默認的LaF獲取UI並將其應用於您的按鈕。

如果測試自己的應用程序,它也使用物質中的代碼,它的工作:

LookAndFeel laf = null; 
try { 
    String lafClassName = UIManager.getSystemLookAndFeelClassName(); 
    laf = (LookAndFeel) (Class.forName(lafClassName).newInstance()); 
} catch (ClassNotFoundException ex) { 
} catch (InstantiationException ex) { 
} catch (IllegalAccessException ex) { 
} 
if (laf != null) { 
    laf.initialize(); 
    button.setUI((ButtonUI) laf.getDefaults().getUI(button)); 
} 

如果你想不同的物質皮膚之間切換,可以使用SKIN_PROPERTY

+0

非常感謝...這就是我一直在尋找的。 – Brad 2011-03-20 12:11:52

-3

myButton.setUI((ButtonUI)UIManager.getUI(myButton))

+0

這將從當前活動的LaF(即物質按鈕UI)獲得UI。 – 2011-03-19 16:01:41

相關問題