java方法对于类型JPanel是未定义的
因此,我试图创建一个简单的程序,打印出一个矩形,但我有这个问题,我不知道如何解决它。这是我的密码:
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.*;
public class GraphicsEditor extends JPanel{
public void drawShape(Graphics g) {
super.drawShape(g);
g.setColor(Color.BLUE);
g.drawRect(100, 100, 120, 150);
}
public static void main(String[] args) {
JFrame frame = new JFrame();
GraphicsEditor ga = new GraphicsEditor();
frame.setSize(1280, 720);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(ga);
}
}
错误是当我尝试在此处添加super
时:
public void drawShape(Graphics g) {
super.drawShape(g);
g.setColor(Color.BLUE);
g.drawRect(100, 100, 120, 150);
}
# 1 楼答案
JPanel
没有drawShape(Graphics)
方法,因此调用“super”方法没有意义。当您认为您正在重写一个方法时,请确保添加@Override
符号,以便在该方法拼写错误、使用错误参数或完全不存在时(如此处所示)获得编译器警告正确的方法是重写
paintComponent
方法,调用(现有的)超级方法,然后立即使用提供给paintComponent
方法的Graphics
实例调用drawShape
方法这是缩小GUI时的结果: