2010-06-08 38 views
5

我建立中的Java Swing應用程序,我使用下面的代碼給UI固有的OS看起來搖擺UI沒有本地操作系統的外觀

try { 
    UIManager.setLookAndFeel(
    UIManager.getSystemLookAndFeelClassName()); 
    } catch (Exception e) { 
    e.printStackTrace(); 
} 

在一個OS X,外觀爲精細,但在Windows(XP和7)上,按鈕看起來像這樣。

alt text http://img710.imageshack.us/img710/8735/buttonsoc.png

我用在其他項目上此完全相同的代碼,它工作正常。但在這個特別的項目中,我看到了完全不同的外觀。

我正在使用Java 1.6

在此先感謝!

+0

您使用的是什麼版本的Java? – 2010-06-08 17:10:32

+2

您發佈的內容應該可行,您是否瀏覽了http://java.sun.com/docs/books/tutorial/uiswing/lookandfeel/plaf.html#programmatic? – 2010-06-08 17:25:43

+0

@Romain - 這是我從那裏得到的代碼,它以前工作。現在令人驚訝的是它賦予了不同的外觀。我也在不同的系統上測試過它,結果相同。 – 2010-06-08 17:42:22

回答

8

您是否可能在實際設置L & F之前創建GUI元素?如果您已經創建了(例如)JButton實例和調用的方法,那麼它們會將它們的UI對象 - 更改分配給L後,將不會影響已經創建的實例。

這可以解釋爲什麼它可以在Mac上運行(L & F默認爲Apple的JVM IIRC上的Mac),但不能在Windows上運行。如果您將L & F直接設置爲main方法(假設您的主類不包含任何靜態初始化的GUI實例),則可以快速測試此方法。

+0

謝謝!就是這樣。你救了我很多痛苦。 – 2010-06-08 19:58:29

相關問題