JTextArea 默认字体在 Windows 中非常小
我正在使用平台look-and-fell,在 Linux 上我的 JTextArea 非常可读 但在 Windows 上它使用“Monospaced 9”并且文本非常小。
为什么以及解决这个问题的最佳方法是什么?
为什么默认的 Windows 外观在 JTextArea 中使用如此小的字体?
I'm using platform look-and-fell and on Linux my JTextArea is pretty readable
But on Windows it uses "Monospaced 9" and the text is very small.
Why and what is the best way to fix that?
Why default Windows look-and-fell uses such small font in JTextArea?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
与其创建新字体,不如派生< /a> 现有字体,因为这样您将保存平台外观设置的字体,并且还可以避免 unicode 字符的问题:
Instead of creating new font, it is better to derive existing font, because this way you'll save the font set by platform look and feel, and it may also avoid problems with unicode characters:
这里有一个解决方案,您可以使用它来一次更改所有 JTextArea,而不是每次添加新文本区域时都使用 setFont():
在设置外观和感觉后,在应用程序启动时调用此方法。
大多数 L&F 对 JTextArea 和 JTextField 使用相同的字体,奇怪的是 Windows 却没有。
Here's a solution that you can use to change all JTextAreas at once instead of using setFont() every time you add new text area:
Call this on start of your application, after setting the Look and Feel.
Most L&Fs use the same font for JTextArea and JTextField, it's strange that Windows doesn't.
如果您想要一致的外观,请使用 Nimbus 或 Metal 外观和感觉,而不是操作系统默认值。这也将允许您调整任何设置。另外,我个人认为 Nimbus 的外观和感觉比其他的看起来更平滑。
If you want a consistent look then use the Nimbus or Metal look and feel instead of the OS default. That will also allow you to tweak any settings. Plus I personally I think the Nimbus Look and Feel is much smoother looking than the others.
我刚刚在 TextArea 中使用了 TextField 字体...
I've just used TextField font in TextArea...
您可以使用
JTextArea1.setFont(Font(String name, int style, int size))
方法指定 JTextArea 组件的特定字体类型。举个例子jTextArea1.setFont(new Font("Arial Black", Font.BOLD, 8));
You can use the
JTextArea1.setFont(Font(String name, int style, int size))
method to specify the specific type of font for a JTextArea component. As an examplejTextArea1.setFont(new Font("Arial Black", Font.BOLD, 8));
只需执行
textArea.setFont(new Font("Arial", Font.PLAIN, 16));
这会将文本区域内的所有文本更改为相同大小的字体。
Just do
textArea.setFont(new Font("Arial", Font.PLAIN, 16));
That changes all of the text inside of the textarea to the same size font.