繁体   English   中英

是否可以为不同的组件设置不同的外观和感觉?

[英]Is it possible to set different look and feel for different components?

我在面板上有许多组件,我想对不同的组件应用不同的外观。 可能吗?

是,

你能行的。 请参阅混合外观

不推荐,坦率地说,它很难看。 你为什么想这么做? 你想做什么具体的事情吗? 也许有更好的方法。

我在面板上有许多组件,我想对不同的组件应用不同的外观。 可能吗?

是的可能,不要这样做,因为大多数的外观和感觉都有所不同

  • 颜色,字体,前景,背景

  • 屏幕上的大小或PreferredSize

  • 使用API​​中的另一种方法进行LayoutManager

  • 在JCOmponents API中实现了各种方法,例如Color,Font,Foreground,Background

  • 简单的回答--->有可能在screeen上创造一个糟糕的混乱

我建议使用今天的Java外观 ,大多数都有各种颜色的主题,其中一部分分离主题,并可选择更改颜色主题,然后在那里你可以混合内置主题或/和每个颜色主题JComponents

我认为,如果成功,您可以设置颜色,字体,前景,仅背景,外观和感觉需要有关JComponents和/与LayoutManagers如何一起工作的基本知识

我知道我已经迟到了但是我认为有人可能会使用它这是一种黑客,我用来给应用程序添加多种外观和感觉:在启动项目之前把这个外观和感觉选择器(在写入之前=新... )

try {
    for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
        if ("Windows".equals(info.getName())) {
            UIManager.setLookAndFeel(info.getClassName());
            break;
        }
    }
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException
    | UnsupportedLookAndFeelException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

然后将UIManager的外观和感觉返回到它之后的外观和感觉,然后执行此操作,如下例所示:

JButton test;
try {
    for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
        if ("Windows".equals(info.getName())) {
            UIManager.setLookAndFeel(info.getClassName());
            break;
        }
    }
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException
    | UnsupportedLookAndFeelException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
test = new JButton();
try {
    for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
        if ("Mwtal".equals(info.getName())) {
            UIManager.setLookAndFeel(info.getClassName());
            break;
        }
    }
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException
    | UnsupportedLookAndFeelException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

像这样只有按钮测试会有窗户的外观和感觉,其余的将具有金属的外观和感觉。

希望这个黑客帮助某人。

你不能。 在运行java应用程序之前,JVM只会加载swingpropertitirs.propertities(位于你jre / lib中的文件)一次,它只会选择你的默认L&F,但如果你通过添加代码来设置你的外观,它会使用您选择的L&F。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM