我想使用 paintComponent(..)
方法打印一些文本。
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.red);
g.drawString("Hello world", 10, 10);
}
但是文字有点锯齿。 你怎么能用这种方法强制使用[抗锯齿]绘制文本?
谢谢。
最佳答案
您可以通过以下方式设置双缓冲:
class MyPanel extends JPanel {
public MyPanel() {
super(true);//set Double buffering for JPanel
}
}
或直接调用 JComponent#setDoubleBuffered(..)
.
您还可以为Graphics2D
对象设置RenderingHint
,例如抗锯齿 和文本抗锯齿 以通过以下方式提高 Swing 绘画质量:
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D graphics2D = (Graphics2D) g;
//Set anti-alias!
graphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
// Set anti-alias for text
graphics2D.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
graphics2D.setColor(Color.red);
graphics2D.drawString("Hello world", 10, 10);
}
关于java - paintComponent() 方法中的抗锯齿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13236797/