gpt4 book ai didi

java - 如何让Java Swing应用程序在windows和linux中有一致的字体?

转载 作者:IT王子 更新时间:2023-10-29 01:10:13 24 4
gpt4 key购买 nike

我有一个在 Windows XP 中开发的 Java 7 Swing 应用程序。我使用跨平台外观:

UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());

当我在 linux (Fedora 12) 上运行它时。字体有点宽。因此,布局在某些地方发生了变化。

有没有办法让应用程序使用与 jre 而不是本地系统自带的相同字体或相似字体?然后我们可以让它的外观和感觉真的一样。

谢谢,

最佳答案

你可以看看UIManager . Swing 使用此处的属性(例如 Label.font)来获取默认字体。所以你可以这样做:

Font font = // create font
UIManager.put("Label.font", font)

确保在创建任何 组件之前更改这些,否则您将获得一些字体正确的字体,而另一些则没有。 Here's a program这将向您显示 UIManager 中的默认属性。以 .font 结尾的任何内容都是您要查找的内容。

另一种方法是创建一个实用程序类,该类将使用您自己的默认值创建组件:

public class MyComponents {

public static final Font LABEL_FONT = // create font

public static JLabel createLabel(String text) {
JLabel label = new JLabel(text);
label.setFont(LABEL_FONT);
return label;
}
}

如果这是一个没有很多组件的新应用程序,我推荐第二种方法。如果它是一个旧的应用程序,到处都有大量的组件生成,第一种方法会更省时,但第二种方法可能会更好。

关于java - 如何让Java Swing应用程序在windows和linux中有一致的字体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12202758/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com