【发布时间】:2018-08-20 09:19:51
【问题描述】:
import javax.swing.*;
import java.awt.*;
public class Main {
public Main(){
JPanel panel = new JPanel();
panel.setSize(500,600);
}
public void paint(Graphics g){
g.setColor(Color.BLACK);
g.fillRect(0,0,500,600);
g.setColor(Color.RED);
g.fillOval(20,30,50,50);
repaint();
}
public static void main(String[] args) {
JFrame frame = new JFrame("Practice");
Main ball = new Main();
frame.add(ball);
frame.pack();
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500,600);
frame.setVisible(true);
}
}
在这我遇到两个错误,我在 youtube 上学习了这段代码。
我不知道为什么我不能写出问题中的错误。这就是我在评论部分写的原因。
【问题讨论】:
-
Main 应该扩展 JPanel
-
Paint 实际上并没有做任何事情,因为 Main 不是一个组件
-
考虑在您尝试覆盖的方法上添加
@Override注释,这将告诉您是否正确覆盖了某些内容。 -
@gtyu 作为Java程序员你应该知道继承的概念
-
@gtyu
Main是一个类,如果您希望利用 Swing 绘制系统,则必须从基于JComponent的源扩展 - 这就是 API 的工作原理