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();
答案 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。