您可以通過設置雙緩衝:
class MyPanel extends JPanel {
public MyPanel() {
super(true);//set Double buffering for JPanel
}
}
或直接致電JComponent#setDoubleBuffered(..)
。
您還可以設置RenderingHint
S表示Graphics2D
對象,如抗鋸齒和文本抗鋸齒以改善揮杆畫質:
@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);
}
你的意思抗鋸齒,而不是雙緩衝? – mikera
@mikera 是的。消除鋸齒 – Sanjeev