2013-05-21 49 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