为什么同样的字体看起来在Java应用程序运行不同,Netbeans和从瓶子运行?(Why the s

2019-10-29 17:54发布

在我的Java Swing应用程序,我有一些JTextAreas,我实现了文字看起来不同,当它从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文件运行时:

Answer 1:

这是预期的行为:作为在所讨论的Font的API,每个支持的平台可以映射不同的物理字体至颗粒逻辑字体如Font.MONOSPACED 。 每个外观和感觉可以进一步细化字体的选择适用于特定用途。 除非平台,版本和设置是相同的,字体可能会有所不同。 一个完整的例子多的映射可以找到这里 。

此外,所援引的理由在这里 ,请不要使用setPreferredSize() 如果您选择覆盖getPreferredSize()一定不要落入这个陷阱 。



文章来源: Why the same font looks different in Java app run from Netbeans and run from Jar?