在我的 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 文件运行时的外观:
最佳答案
这是预期的行为:如 Font
中所述API,每个支持的平台可以将不同的物理字体映射到特定的逻辑字体,例如Font.MONOSPACED
。每个look & feel可以进一步细化用于特定目的的字体选择。除非平台、版本和设置相同,否则字体可能会有所不同。有关映射的完整示例和更多信息可以在 here 中找到。 .
此外,出于上述原因here ,不要使用setPreferredSize()
。如果您选择重写 getPreferredSize()
,请确保不要陷入此 trap .
关于java - 为什么相同的字体在从 Netbeans 运行的 Java 应用程序和从 Jar 运行的 Java 应用程序中看起来不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30958864/