有没有办法在Swing JTextFields中改进字体渲染?这就是我现在所得到的:
正如你所看到的,它看起来很漂亮。有什么方法可以改善吗?我正在使用GTKLookAndFeel,以防任何人需要知道。
(我查看了this问题,但这没什么用。)
SSCCE:
public class foo extends JFrame{
foo(){
add(new JTextField);
setVisible(true);
}
}
我在Linux上,所以可能与它有关。我在linux中使用Infinality来获得更好的字体。
答案 0 :(得分: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();
}
});
}
}
答案 1 :(得分:1)
要获得更加平滑的文本,您应该启用消除锯齿:
$ java -jar lib/application.jar -Dswing.aatext=true
答案 2 :(得分:0)
使用此代码,您可以更改JTextArea中的字体和字体颜色。
我们创建了一个名为txt的JTextArea。只需几行简单的代码,您就可以更改其字体,颜色和范围。尺寸设置:
Font font = new Font("Verdana", Font.BOLD, 12);
txt.setFont(font);
txt.setForeground(Color.BLUE);
Font类中有多种字体设置,包括PLAIN,BOLD,ITALIC和Color类中的13种不同颜色(如下所列)。