Nimbus外观和感觉JAVA - 更改组件的全局大小
问题描述:
我在搜索是否有可能更改Nimbus外观和感觉中所有组件的全局大小。Nimbus外观和感觉JAVA - 更改组件的全局大小
有一个tutorial用于重新调整组件大小;但不适用于所有组件。
我找到了这样的事情: http://www.jasperpotts.com/blog/2007/12/nimbus-large-small-mini-components/
2008年11月6日上午11时29分对不起马特没有用于 大小的全局设置,这是重复的事情,我们可以考虑增加为看来 明智。
但这篇文章是从几年前,也许有所改变。有任何想法吗?
谢谢。
答
它可以这样做:
UIManager.setLookAndFeel(new NimbusLookAndFeel());
final SynthStyleFactory styleFactory = SynthLookAndFeel.getStyleFactory();
SynthLookAndFeel.setStyleFactory(new SynthStyleFactory() {
@Override
public SynthStyle getStyle(JComponent c, Region id) {
c.putClientProperty("JComponent.sizeVariant", "large");
return styleFactory.getStyle(c, id);
}
});
答
下面的答案是以前的答案被@Stijn与变化在初始化的方法是的延伸,在推荐文件。引用链接nimbuslaf和swing tutorials - size
版本注:不要设置Nimbus的外观和通过调用UIManager.setLookAndFeel方法明确地感觉到,因为不是所有版本 或Java SE 6的支持雨云的实现。此外,Nimbus软件包的 位置在JDK 6 Update 10和 JDK 7版本之间进行了更改。遍历所有已安装的外观和感觉 实现是一种更稳健的方法,因为如果Nimbus不是 可用,则使用默认外观和感觉。
try {
for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
UIManager.setLookAndFeel(info.getClassName());
try {
Constructor c = Class.forName("MyStyleFactory").getConstructor(String.class);
c.newInstance("small"); // regular, mini, small or large
} catch (ExceptionInInitializerError eiie){
//
} catch (LinkageError le){
//
} catch (ClassNotFoundException cnfe){
//
}
break;
}
}
} catch (Exception e) {
// If Nimbus is not available, you can set the GUI to another look and feel.
}
文件:MyStyleFactory.java
public class MyStyleFactory extends SynthStyleFactory {
protected static String variant = "regular";
final SynthStyleFactory styleFactory = SynthLookAndFeel.getStyleFactory();
static {
SynthLookAndFeel.setStyleFactory(new MyStyleFactory(variant));
}
public MyStyleFactory(String variant) {
if (variant.equals("regular") || variant.equals("mini")
|| variant.equals("small") || variant.equals("large"))
MyStyleFactory.variant = variant;
}
@Override
public SynthStyle getStyle(JComponent c, Region id) {
c.putClientProperty("JComponent.sizeVariant", variant);
return styleFactory.getStyle(c, id);
}
}
好,感谢您的咨询,但如果没有简单的方法来实现,在灵气(不使用第三方库像JXLayer) - 我必须寻找其他拉夫。任何(免费用于商业用途)推荐? – 2012-04-04 06:51:10