San*_*eev 2 java string graphics swing paintcomponent
我想用这个paintComponent(..)方法打印一些文字.
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.red);
g.drawString("Hello world", 10, 10);
}
Run Code Online (Sandbox Code Playgroud)
但是文字有些麻烦.你怎么能用这种方法用[抗锯齿]强制文本绘图?
谢谢.
您可以通过以下方式设置双缓冲:
class MyPanel extends JPanel {
public MyPanel() {
super(true);//set Double buffering for JPanel
}
}
Run Code Online (Sandbox Code Playgroud)
或者直接打电话 JComponent#setDoubleBuffered(..).
您还可以为抗锯齿和文本消除锯齿等对象设置RenderingHints,以通过以下方式改善Swing绘画质量: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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3048 次 |
| 最近记录: |