为什么会出现此错误?

时间:2016-01-10 02:36:38

标签: java jframe rectangles

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);我不知道为什么会出现这个错误,因为在本书中它与我复制它完全一样。 (这本书是Cay H.的Big Java。)顺便说一下,我使用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);
        }
    }

为了记录,我只是想澄清一下,这不是MINE,它来自我从中学到的书,并且在它告诉我复制它的说明中,所以我会看到数字在JFrame中的显示方式。我无法继续阅读学习它的学习,因为下一课程涉及add.frame();

2 个答案:

答案 0 :(得分:0)

尝试在extends JComponent之后添加public class RectangleComponent。同时删除static前面的void paintComponent

public class RectangleCompoent extends JComponent {

public void paintComponent(Graphics g) {

答案 1 :(得分:0)

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