为什么相同的字体在从Netbeans运行的Java应用程序和从Jar运行的Java应用程序中看起来不同?
在我的JavaSwing应用程序中,我有一些JTextAreas,我意识到当从Netbeans运行时文本看起来不同,当从Jar文件运行时文本看起来不同,为什么?如何使它们看起来一样为什么相同的字体在从Netbeans运行的Java应用程序和从Jar运行的Java应用程序中看起来不同?,java,swing,fonts,look-and-feel,Java,Swing,Fonts,Look And Feel,在我的JavaSwing应用程序中,我有一些JTextAreas,我意识到当从Netbeans运行时文本看起来不同,当从Jar文件运行时文本看起来不同,为什么?如何使它们看起来一样 JTextArea Client_Side_TextArea=new JTextArea(),Network_TextArea=new JTextArea(); setLayout(new BorderLayout()); Client_Side_TextArea.setFont(new Font("Monosp
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文件运行时的外观:
这是预期的行为:正如API中所讨论的,每个受支持的平台可能会将不同的物理字体映射到特定的逻辑字体,例如
font.MONOSPACED
。每种字体都可以为特定目的进一步优化字体的选择。除非平台、版本和设置相同,否则字体可能会有所不同。可以找到一个完整的示例以及有关映射的更多信息
此外,出于上述原因,请不要使用
setPreferredSize()
。如果您选择覆盖getPreferredSize()
,请确保不要陷入这种情况。这是预期的行为:如API中所述,每个受支持的平台可能会将不同的物理字体映射到特定的逻辑字体,例如font.MONOSPACED
。每种字体都可以为特定目的进一步优化字体的选择。除非平台、版本和设置相同,否则字体可能会有所不同。可以找到一个完整的示例以及有关映射的更多信息
此外,出于上述原因,请不要使用
setPreferredSize()
。如果您选择覆盖getPreferredSize()
,请确保不要陷入这种情况。这是预期的行为:如API中所述,每个受支持的平台可能会将不同的物理字体映射到特定的逻辑字体,例如font.MONOSPACED
。每种字体都可以为特定目的进一步优化字体的选择。除非平台、版本和设置相同,否则字体可能会有所不同。可以找到一个完整的示例以及有关映射的更多信息
此外,出于上述原因,请不要使用
setPreferredSize()
。如果您选择覆盖getPreferredSize()
,请确保不要陷入这种情况。这是预期的行为:如API中所述,每个受支持的平台可能会将不同的物理字体映射到特定的逻辑字体,例如font.MONOSPACED
。每种字体都可以为特定目的进一步优化字体的选择。除非平台、版本和设置相同,否则字体可能会有所不同。可以找到一个完整的示例以及有关映射的更多信息
此外,出于上述原因,请不要使用
setPreferredSize()
。如果您选择覆盖getPreferredSize()
,请确保不要陷入这种情况。可以尝试System.setProperty(“sun.java2d.noddraw”,“true”);最后?我尝试了,没有成功,我也尝试了:System.setProperty(“sun.java2d.d3d”,“false”);也不起作用。您可以设置窗口大小并关闭可调整大小吗?我设置:frame.setresizeable(false);没用。为什么它有不同的字体?你能试试System.setProperty(“sun.java2d.noddraw”,“true”);最后?我尝试了,没有成功,我也尝试了:System.setProperty(“sun.java2d.d3d”,“false”);也不起作用。您可以设置窗口大小并关闭可调整大小吗?我设置:frame.setresizeable(false);没用。为什么它有不同的字体?你能试试System.setProperty(“sun.java2d.noddraw”,“true”);最后?我尝试了,没有成功,我也尝试了:System.setProperty(“sun.java2d.d3d”,“false”);也不起作用。您可以设置窗口大小并关闭可调整大小吗?我设置:frame.setresizeable(false);没用。为什么它有不同的字体?你能试试System.setProperty(“sun.java2d.noddraw”,“true”);最后?我尝试了,没有成功,我也尝试了:System.setProperty(“sun.java2d.d3d”,“false”);也不起作用。您可以设置窗口大小并关闭可调整大小吗?我设置:frame.setresizeable(false);没用。为什么它有不同的字体?