12月伊始,寒冷的冬季,今年来的有点早,时间在恍惚之间就逝去了,回望这一周,还是收获颇丰的,每天进步一点点。
这一周是闭组的最后一周了,很珍惜这段短暂的时光,很想把时间掰成两半用,当自己一天里没有收获时,自己眼睛就有点湿润,但还好,我并不是一个人在奋斗,有那么优秀的小伙伴们,一起努力,他们真的帮了很多,真的很感谢。记得有一句话很喜欢,一个人可以走的很快,但一群人可以走的更远。自己很幸运,在这么有爱的大环境里,十分开心。
这个星期主要在完成开始游戏的界面,实现跳转,设置游戏规则和退出游戏的对话框。额外改了几个bug,比如,蛇穿墙后,又丢了。右领桌帮我解决了这个问题。设置了蛇撞墙就死了。还加了一些其他功能,1,通关,设置吃20个食物,就通关了,可以重新开始。2,加入音乐,游戏一开始,就有音乐循环播放。主要的改的差不多了,主要就是代码不太理解,需要再回顾一遍,之前只顾着看视频,敲代码,赶进度,忽视了注释的主要性,接下来要多回顾。我把自己不太懂的代码,在网上查了查,总结了一些代码。还要试着理解。
1,关于添加图片
this.getLayeredPane() 得到一个JLayeredPane 对象,这个类为容器添加了深度,允许组件在需要时互相重叠。
this.getLayeredPane().add(background, new Integer(Integer.MIN_VALUE)); 这句话的意思是,为前面创建的标签 设置层的深度,这里将其设置为了最底层,因为Integer.MIN_VALUE是int类型的最小值了。
2,容器的拓展代码
1,this.getContentPane(); 得到的是一个容器 (Container)对象,
2,(JFrame)this.getContentPane() ; 将该容器 (Container) 强转为面板对象(JFrame),
3,((JPanel) this.getContentPane()).setOpaque(false); 将该面板设置为透明;
4,ImageIcon img = new ImageIcon("image/对对碰1.jpg"); 创建一个图标(ImageIcon)对象,
5,JLabel background = new JLabel(img); 创建一个标签,并将上面创建的图标对象给该标签,意思是该标签的背景就是 img
3,添加图片整体
登录的窗口主界面JFrame,调用getContentPane(),获取到面板。
JPanel J=(JPanel)this.getContentPane();
创建一个带图标的标签。
JLabel jb=new JLabel(new ImageIcon("xx.jpg"));
添加该标签,并设置为窗口的大小。
J.add(jb);
jb.setBounds(0, 0, this.getWidth(), this.getHeight());
如果在JFrame中还有其他的覆盖于其上的JPanel,需要将其设为透明,
setOpaque(true);
注:代码为JFrame的构造函数中完成,其This指代窗口当前实例。
4,paintComponent的作用
publicvoidpaintComponent(Graphicsg){super.paintComponent(g);.....}
调用super.paintComponent(g);
super关键字用来调用父类中定义的构造器,控制对象的父类的部分结构。
如果说要控制父类特定的构造器的调用,那么就必须要为super()提供适当的参数,如果没有参数,那么就会隐式调用带零个参数的父类构造器,在这种情况下,如果没有零个参数的父类构造器,会产生编译错误。
通俗的来说就是调用了父类的paintComponent()构造器,并将g作为参数传进去。
反思:自己最大的问题就是,想要的太多,可是一口吃不了一个大胖子,选择很多,但没有舍弃一部分,导致自己时间永远不够,永远顾前不顾尾。要试着分清主次,合理分配好时间。现在,数学期末,法学期末,计算机考核,英语四级,排球。还有我自己有一颗浮躁的心。自己要好好想想了。
我记得我和一个同学说,我在大学,想要尝试很多,这样可以知道想要什么。但她说,看书吧!看书多了,就知道自己想要什么了。我相信这句话,在心灵上要试着学会长大。这个星期过得很充实,很感谢帮我的小伙伴们,超级友爱!很幸福。很开心。心怀感恩,努力珍惜。
真正治愈自己的只有自己,不去抱怨,不怕孤单,努力沉淀。
世界上所有的惊喜和好运,都是你积累的温柔和善良。
网友评论