java - 为什么相同的字体在从 Netbeans 运行的 Java 应用程序和从 Jar 运行的 Java 应用程序中看起来不同?

标签 java swing fonts look-and-feel

在我的 Java Swing 应用程序中,我有一些 JTextArea,我意识到从 Netbeans 运行文本时和从 Jar 文件运行应用程序时文本看起来不同,为什么?如何让它们看起来一样?

JTextArea Client_Side_TextArea=new JTextArea(),Network_TextArea=new JTextArea();

setLayout(new BorderLayout());

Client_Side_TextArea.setFont(new Font("Monospaced",0,15));
Client_Side_TextArea.setForeground(new Color(0,28,218));
Client_Side_TextArea.setPreferredSize(new Dimension(290,300));
Client_Side_TextArea.append("           Client Side\n================================\n");
add("West",Client_Side_TextArea);

Network_TextArea.setFont(new Font("Monospaced",0,15));
Network_TextArea.setBackground(new Color(226,226,226));
Network_TextArea.setForeground(new Color(0,28,218));
Network_TextArea.setPreferredSize(new Dimension(270,300));
Network_TextArea.append("            Network Connection\n =========================================\n");
add("Center",Network_TextArea);

在下图中,上半部分来自使用 Netbeans 运行的应用程序,下半部分是从 Jar 文件运行时的外观:

enter image description here

最佳答案

这是预期的行为:如 Font 中所述API,每个支持的平台可以将不同的物理字体映射到特定的逻辑字体,例如Font.MONOSPACED。每个look & feel可以进一步细化用于特定目的的字体选择。除非平台、版本和设置相同,否则字体可能会有所不同。有关映射的完整示例和更多信息可以在 here 中找到。 .

此外,出于上述原因here ,不要使用setPreferredSize()。如果您选择重写 getPreferredSize(),请确保不要陷入此 trap .

关于java - 为什么相同的字体在从 Netbeans 运行的 Java 应用程序和从 Jar 运行的 Java 应用程序中看起来不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30958864/

相关文章:

python - 更改 Matplotlib 图表上的标签(例如 Muli)

r - ggplot 文本渲染不适用于某些字体

java - 双击 .jar 文件以在命令行中启动它

java - 为什么重载不支持多态

java - 在 Android Activity 中的 java.util.Timer 中使用计数器会导致应用程序崩溃

java - 动态显示和隐藏 JFrame 装饰

java - setAlignmentX(CENTER_ALIGNMENT) 不在 JFrame 中使 boxLayout 居中

Python Tkinter 字体选择器

java - 调试MysqlDataTruncation异常

用于加载未运行的 GUI 的 Java 主类