首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nimbus外观和感觉JAVA -更改组件的全局大小

Nimbus外观和感觉JAVA -更改组件的全局大小
EN

Stack Overflow用户
提问于 2012-04-03 14:32:17
回答 3查看 1.4K关注 0票数 2

我正在搜索是否有可能改变Nimbus外观和感觉中所有组件的全局大小。

有一个调整组件大小的教程,但不是所有组件。

我发现了这样的东西:http://www.jasperpotts.com/blog/2007/12/nimbus-large-small-mini-components/

2008年11月6日上午11:29 -抱歉,马特-没有全球范围的规模设置,这也是我们可以考虑增加的,因为这似乎是明智的。

但是这篇文章是几年前写的,也许已经发生了一些变化。有什么想法吗?

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-03 14:41:08

我认为没有具体的办法来实现这一点。JXLayer项目实现了将整个UI转换成不同的规模--这可以应用于任何外观。您可能想要查看这个演示

票数 1
EN

Stack Overflow用户

发布于 2015-11-26 15:27:42

可以这样做:

代码语言:javascript
复制
  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);
    }
  });
票数 1
EN

Stack Overflow用户

发布于 2017-03-25 12:22:56

下面的答案是@Stijn对前一个答案的扩展,更改是在文档中推荐的初始化方法中进行的。引用链接尼姆布拉夫摇摆教程.尺寸

Version Note__:不要通过调用UIManager.setLookAndFeel方法显式地设置Nimbus外观和感觉,因为并非所有版本或实现的Java 6都支持UIManager.setLookAndFeel。此外,Nimbus包的位置在JDK6Update 10和JDK 7发行版之间发生了更改。迭代所有已安装的外观和感觉实现是一种更健壮的方法,因为如果Nimbus不可用,则使用默认的外观和感觉。

代码语言:javascript
复制
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

代码语言:javascript
复制
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);
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9995416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档