我正试图改变我的工具提示的大小。
我正在使用:
UIManager.put("ToolTip.font", new Font("SansSerif",Font.PLAIN,25));
一般情况下哪项工作正常。但就我而言,我正在使用Nimbus 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”不是Nimbus LaF的承认属性......
但根据此页面:http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/_nimbusDefaults.html此属性存在。
我的代码出了什么问题?或者我该如何以其他方式解决这个问题?
非常感谢!
答案 0 :(得分: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,我相信您可以在创建该类型的第一个组件之前更改任何属性。