1.scanner两套输入不能混用
2.结束虚拟机即退出程序的代码:System.exit(0);
3.输出对齐---为什么制表符都不一样但是输出却是一样的
4.字符串以0开始: personId.startsWith("0")或者personId.charAt(0)=='0'
5.如何修改字符串里面的内容呢?
6.注意System.exit(0)和break loop的不同使用时机
7.集合的for循环大多时候都可以使用增强for,除非需要返回索引等int类型值才需要使用普通for.
8.字符数组可以存int类型值,打印出来还是int类型的值,不会是该数字对应的字符
9.抽取方法的好处:复用性,可维护性,可阅读性
10.GUI(图形化界面)
11.主界面
注意,下面使用了继承改写,可以使得main程序不臃肿,还要注意看GameJFrame的构造方法,调用自身的set方法来初始化成员变量,然后在App在创建其对象调出其窗口
主界面大概操作:
setDefaultCloseOperation的参数如下:
12.菜单
注意:这些菜单设置代码也是在构造方法里面的,并且在主界面设置代码下面
13.把构造方法里面的主界面设置代码和菜单设置代码等设置代码抽取成方法,使得构造方法不臃肿,便于阅读
14.添加图片和文字
注意:一张照片对于一个图片对象,一个管理容器存储一个图片对象
图片加载到IDEA后可以在图片右上角看像素点大小等信息,如下:
窗口的原点是左上角,图片的坐标也是看图片左上角的点的坐标
为了图片等对象不默认放在中间位置,需要在主界面设置代码里面添加以下代码:
改进后的代码:
小细节:number==16时没有对应的图片了,这时会加载空图片
15.如何把一维数组的数据放入二维数组里面?
16.事件与绑定监听
动作监听
改写:直接让MyJFrame继承JFrame的同时实现ActionListener,这样可以直接使用this关键字就行了