paintComponent()方法中的抗氧化



我想使用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(..)

您还可以设置RenderingHint s的Graphics2D对象,例如 ant-> antialiasing 文本抗偏置,以提高摇摆绘画质量:

  @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);
}

相关内容

  • 没有找到相关文章

最新更新