1. 本周学习总结
1.1 思维导图:Java图形界面总结
2.书面作业
1. GUI中的事件处理
1.1 写出事件处理模型中最重要的几个关键词。
答: 事件源 、 事件监听器 、 监听接口 、事件
1.2 任意编写事件处理相关代码(程序中需要出现你的学号与姓名)并截图,以证明你理解了事件处理模型。
2. 大作业:使用图形界面改善你的购物车,考核点如下:
2.1 给出项目的分工表格与git地址
姓名 | 任务 | GIT地址 |
张韵弢 | 注册登录购物车GUI | |
黄泽鑫 | 搜索及GUI |
2.2 尝试使用图形界面改写(截图你的程序,图形界面中需要出现你的姓名)
购物车图形界面已完成,但内部方法还有待完善
2.3 将基于控制台界面的程序改写为基于GUI的程序这个过程碰到什么问题?总结:以后编写方法时,应该遵循一些什么原则?
遇到的问题:
- 首先是JFrame之间数据的传送。因为
java.awt.EventQueue.invokeLater(new Runnable())
的存在,我不太清楚如何在JFrame之间传送参数。在查询网络以后,我发现这是帮助awt在单线程运作时按顺序进行处理的。然而在小程序中,并不会出现调度线程紊乱,所以暂时将其去掉。在随后代码编程过程中,我想到可以用文件存储与读取,而不借助参数,所以在学习JAVA文件处理后,我会改掉这一块。 - 其次是细节问题(1),当程序无法搜索到商品时,会返回一个空的列表,对于空列表,我一开始没有注意。输出时进行了空指针报错,我花了一段时间排查这个问题。
- 然后是细节问题(2),这个问题我卡了很长时间。说起来是一个十分小的错误:我在netbeans设置JTable时将价格一栏的属性设置为了double。然而我将其复制到eclipse输出时将double转换为了String(String二维数组)。这自然导致了错误,
java.lang.IllegalArgumentException: Cannot format given Object as a Number
。对此我调试了很久,现在想来,无论是编程时犯下这个错误,还是debug时花了那么长时间修改,都是没有必要的。编程过程中,留心,或是DEBUG时,去网上查找一下报错原因都可以为我省下大量时间,我要引以为戒。
总结:
- 以后编写方法,最需要注意的就是细节。如果在编写过程中“省下”时间,在debug过程中就会花费更多的时间。
- 要对症下药。程序出现问题,还是要先理解他的错误提示信息。此次,我因为他提示错误过多、过繁杂,而选择忽略错误提示信息,尝试自己更正,因此而花费大量时间。如果我能先去网上查一下报错信息,就会知道这是一个jtable很常见的问题。
2.4 给出几个人在码云上同一项目的提交记录截图。如果某个人无提交记录,视为未完成。
3.统计本周完成的代码量
周次 | 总代码量 | 新增代码量 | 总文件数 | 新增文件数 |
1 | 0 | 0 | 0 | 0 |
2 | 0 | 0 | 0 | 0 |
3 | 619 | 619 | 15 | 15 |
4 | 619 | 0 | 15 | 0 |
5 | 973 | 354 | 25 | 10 |
6 | 1394 | 421 | 37 | 12 |
7 | 2001 | 607 | 43 | 6 |
8 | 4046 | 2045 | 54 | 11 |