java 如何调用paint
调用 paint 方法的基本方式
在 Java 中,paint 方法通常用于图形绘制,属于 java.awt.Component 类或其子类(如 JPanel、JFrame)的方法。直接调用 paint 方法并不推荐,而是通过系统自动触发或间接调用。
重写 paint 方法:
@Override
public void paint(Graphics g) {
super.paint(g); // 调用父类绘制逻辑
// 自定义绘制代码
g.drawString("Hello World", 50, 50);
}
触发 paint 的间接方法
-
repaint()方法
调用repaint()会请求组件重绘,最终触发paint方法。这是最常用的方式:component.repaint(); // 触发异步重绘 -
paintImmediately方法
若需立即重绘(如动画场景),可使用:component.paintImmediately(x, y, width, height);
自定义绘制组件示例
以下是一个完整示例,展示如何在 JPanel 中重写 paintComponent(Swing 中更推荐的方式):

import javax.swing.*;
import java.awt.*;
public class MyPanel extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g); // 清空背景
g.setColor(Color.RED);
g.fillOval(50, 50, 100, 100);
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.add(new MyPanel());
frame.setSize(300, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
注意事项
- Swing 组件应使用
paintComponent而非paint,避免直接覆盖paint方法。 - 绘制代码中避免耗时操作,否则会导致界面卡顿。
- 修改图形数据后调用
repaint(),而非直接调用paint。






