【发布时间】:2013-01-07 16:31:41
【问题描述】:
我刚开始重新编码,我想我忘记了如何加倍缓冲。这是我现在拥有的代码,我不确定我缺少什么。当我启动它时,只有一个白色的屏幕,没有椭圆形。
渲染的错误是什么?
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JFrame;
public class Graphs extends JFrame {
private Image dbImage;
private Graphics dbg;
public static void main(String[] args) {
new Graphs();
}
public Graphs() {
setSize(1000, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
setTitle("Graphs");
setLocationRelativeTo(null);
setVisible(true);
}
public void paint(Graphics g) {
dbImage = createImage(getWidth(), getHeight());
dbg = dbImage.getGraphics();
paintComponent(dbg);
dbg.drawImage(dbImage, 0, 0, this);
}
public void paintComponent(Graphics g) {
g.drawOval(200, 200, 200, 200);
repaint();
}
}
更新:@Override 上的编译错误
The method paintComponent(Graphics) of type Graphs must override or implement a supertype method.
1 quick fix available:
-> Remove '@Override' annotation
【问题讨论】:
-
看起来像DUPLICATE
-
public void paintComponent(Graphics g) {- 让@Override public void paintComponent(Graphics g) {惊喜!提示:改为在JPanel中进行自定义绘画。将其添加到顶级容器中。 -
给方法paintComponent添加@Override注解? prntscr.com/q7dit
-
请不要发布您的 IDE 的图像(或指向它们的链接)。将错误和代码复制/粘贴为edit to the question。
-
对不起,先生...我只是想告诉您,我从您的建议中收到的“惊喜”给了我一个错误。我已经尝试在paint方法中添加@Override注解,但它不起作用。
标签: java swing awt double-buffering