为什么会出现此错误?
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。
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。