首先,我和视频教程的代码一模一样。就是不能修改panel的颜色
public class Snake {
7
8 public static void main(String[] args) {
9
10 JFrame frame = new JFrame(); // 创建一个游戏界面的框架
11 frame.setBounds(10, 10, 900, 720); // 设置框架的大小
12 frame.setResizable(false); // 设置框架大小为不能改变
13 // 点击关闭按钮 关闭游戏界面
14 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
15
16 SnakePanel panel = new SnakePanel(); //添加画布
17 frame.add(panel); // 刚添加时画布是空的看不到
18
19 frame.setVisible(true); // 允许显示游戏界面
20 }
21
22 }
package snake;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
public class SnakePanel extends JPanel {//继承 JPanel 这个类实则是画布(内容白板) 把这个画布添加到主方法
public SnakePanel(){ // 这个画布需要两个方法 一个是初始化方法 获得焦点
this.setFocusable(true);
}
public void paint(Graphics g){
// 图形 可以理解为 一支笔 随便把它的包导进来
this.setBackground(Color.PINK); // this 指代SnakePanel 设置这个画布或者白板的颜色
}
}
运行后无法修改 画布 jpanel的颜色。这个问题不止我一个人遇到,我百度了很多人,仍然没有答案。 有人说是paint()的方法问题。
源代码作者解释:
class SnakePanel 本质就是JPanel
其中this 就是SnakePanel。 显示,我把this换成SnakePanel是出现错误。但是源代码作者运行却没有问题、