2013-05-21 86 views
1

我正在嘗試更改globaly我的工具提示的大小。使用Nimbus更改工具提示

我使用:

UIManager.put("ToolTip.font", new Font("SansSerif",Font.PLAIN,25)); 

這在一般的工作就好了。但對我來說,我使用的雨雲的LaF與此代碼:

UIManager.LookAndFeelInfo plafinfo[] = UIManager.getInstalledLookAndFeels(); 
    boolean LaFfound=false; 
    int LaFindex=0; 

    for (int look = 0; look < plafinfo.length && !LaFfound; look++) 
    { 
     if(plafinfo[look].getClassName().toLowerCase().contains("nimbus")) 
     { 
      LaFfound=true; 
      LaFindex=look; 
     } 
    } 

    try { 
     if(LaFfound) { 
      UIManager.setLookAndFeel(plafinfo[LaFindex].getClassName()); 
     } 
     else {UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());} 
    } 
    catch(Exception e){Logger.getLogger(Fenetre.class.getName()).log(Level.SEVERE, null, e);} 

    //correct tooltips size 
    UIManager.put("ToolTip.font", new Font("SansSerif",Font.PLAIN,25)); 

在這種情況下,UIManager的似乎完全無視我的命令,就好像「ToolTip.font」是不是在雨雲的LaF的承認財產...

但根據此頁:http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/_nimbusDefaults.html此屬性存在。

我的代碼有什麼問題?或者我該如何解決這個問題?

非常感謝!

回答

0

Nimbus似乎與其他LAF不同。您需要設置該屬性設置了LAF前:

UIManager.put("ToolTip.font", new Font("SansSerif",Font.PLAIN,25)); 

try 
{ 
    for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) 
    { 
     if ("Nimbus".equals(info.getName())) 
     { 
      UIManager.setLookAndFeel(info.getClassName()); 
      break; 
     } 
    } 
} 
catch (Exception e) 
{ 
    // If Nimbus is not available, you can set the GUI to another look and feel. 
} 

與其他的LAF我相信你創建該類型的第一個組件,然後才能更改任何財產。

+0

此代碼是否適合您?我沒有結果... – Darksharcoux

+0

是的,這就是爲什麼我發佈了與註釋Nimbus不同的評論的答案。我在Windows 7上使用JDK7。 – camickr

+0

我使用的是JDK6。 我試過用JDK7,突然,它工作了! ^^ 非常感謝! – Darksharcoux