为什么会出现此错误?

Why is this error showing up?

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import javax.swing.JComponent;
public class RectangleComponent {
public static void  paintComponent(Graphics g){
Graphics2D g2 = (Graphics2D) g;
    Rectangle box = new Rectangle(10,15,20,30);
    g2.draw(box);
    box.translate(30,50);
    g2.draw(box);

}
 }

这个工作得很好。当我尝试将它添加到我遇到问题的其他代码时。它说: frame.add(component);我不知道为什么会出现这个错误,因为在书中它和我复制的一模一样。 (这本书很大 Java,作者是 Cay H。)顺便说一句,我正在使用 NetBeans。

import javax.swing.JFrame;
    public class Rectangleviewer {
        public static void main(String[] args) {
             JFrame frame = new JFrame();
             frame.setSize(300,400);
             frame.setTitle("My second frame");
             frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
             RectangleComponent component = new RectangleComponent();
             frame.add(component);

             frame.setVisible(true);
        }
    }

郑重声明,我只是想澄清一下,这不是我的,它来自我正在学习的一本书,在说明中它告诉我复制它,这样我就可以看到图形在 JFrames 中的显示方式。我不能继续阅读 learning with it 因为接下来的课程涉及 add.frame();

尝试在 public class RectangleComponent 之后添加 extends JComponent。还要去掉void paintComponent.

前面的static
public class RectangleCompoent extends JComponent {

public void paintComponent(Graphics g) {

您的 RectangleComponent 只是一个对象,但不扩展 Component/JComponent。