0

有没有办法改善 Swing JTextFields 中的字体渲染?这是我现在得到的: 在此处输入图像描述

如您所见,它看起来很锯齿状。有什么办法可以改善吗?我正在使用 GTKLookAndFeel,以防万一有人需要知道。

(我看了这个问题,但没有多大帮助。)

SSCCE:

public class foo extends JFrame{

  foo(){
    add(new JTextField);
    setVisible(true);
  }

}

我在Linux上,所以这可能与它有关。我在 linux 中使用 Infinality 来获得更好的字体。

4

3 回答 3

2

使用下面的sscce,我看到 GTK+ L&F 的外观如下。

附录:作为一种解决方法,您可以尝试设置 UI 委托属性,例如,

JTextField tf = new JTextField();
UIManager.put("TextField.font", tf.getFont().deriveFont(Font.BOLD));

图像平原 图像粗体

import component.Laf;
import java.awt.EventQueue;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

/** @see http://stackoverflow.com/a/18969361/230513 */
public class Test {

    private void display() {
        JFrame f = new JFrame("Test");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setLayout(new GridLayout(0, 1));
        // http://stackoverflow.com/a/11949899/230513
        f.add(Laf.createToolBar(f));
        f.add(new JTextField("bla@foo.com"));
        f.add(new JPasswordField("*****"));
        f.pack();
        f.setLocationRelativeTo(null);
        f.setVisible(true);
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                new Test().display();
            }
        });
    }
}
于 2013-09-23T21:38:41.497 回答
1

要获得令人窒息的文本,您应该启用抗锯齿:

$ java -jar lib/application.jar -Dswing.aatext=true
于 2013-09-23T19:46:51.927 回答
-2

使用此代码,您可以更改 JTextArea 中的字体和字体颜色。

我们创建了一个名为 txt 的 JTextArea。只需几行简单的代码,您就可以更改其字体、颜色和大小设置:

Font font = new Font("Verdana", Font.BOLD, 12);
txt.setFont(font);
txt.setForeground(Color.BLUE);

Font 类中有多种字体设置,包括 PLAIN、BOLD、ITALIC 和 Color 类中的 13 种不同颜色(如下所列)。

  • 黑色的
  • 蓝色的
  • 青色
  • 深灰色
  • 灰绿
  • 浅灰
  • 品红
  • 粉色的
  • 红色的
  • 白色的
  • 黄色
于 2013-09-23T19:46:18.550 回答