201621123031 《Java程序设计》第7周学习总结
作业07-Java GUI编程
1.本周学习总结
1.1 思维导图:Java图形界面总结

1.2 可选:使用常规方法总结其他上课内容。
事件监听器:
Java事件监听器是由事件类和监听接口组成,自定义一个事件前,必须提供一个事件的监听接口以及一个事件类。JAVA中监听接口是继承java.util.EventListener的类,事件类继承java.util.EventObject的类。
常用事件监听器:

2.书面作业
1. GUI中的事件处理
1.1 写出事件处理模型中最重要的几个关键词。
- 事件:用户所进行的操作,一般通过鼠标键盘之类的输入设备来执行。
- 事件源:产生事件的组件。
- 事件监听程序:对事件进行处理的操作。
1.2 任意编写事件处理相关代码(程序中需要出现你的学号与姓名)并截图,以证明你理解了事件处理模型。
事件处理相关代码:
import java.awt.Container;
import java.awt.event.*;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.*;
class Test233 {
public Test233(){
JFrame jf = new JFrame("约吗"); //设置标题
Container container = jf.getContentPane(); //获取一个容器
URL url = Test.class.getResource("movie.jpg");
ImageIcon icon1 = new ImageIcon(url); //获取图片路径
icon1.setImage(icon1.getImage().getScaledInstance(380, 516, 100));
JLabel jl = new JLabel(icon1); //将图片添加到一个标签里
container.add(jl); //将标签添加进容器
jf.setVisible(true); //设置可见
jf.setSize(380,516); //设置尺寸
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//设置退出方法
}
}
public class Test {
public static void main(String[] args) {
JFrame jf = new JFrame("201621123031-陈晓菲");
Container container = jf.getContentPane();
JButton b = new JButton("我是一只按钮");
container.add(b);
b.addActionListener(new ActionListener(){ //为按钮添加监听事件
@Override
public void actionPerformed(ActionEvent e) {
jf.setVisible(false);
new Test233();
}
});
b.setVisible(true);
jf.setVisible(true);
jf.setSize(380,516);
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}
运行结果:


在这个程序中,按钮为事件源,单击按钮为一个事件,单击后程序激活了事件监听器,开始了切换界面的事件的处理。
2. 大作业:使用图形界面改善你的购物车,考核点如下:
(补交上大作业 2017.11.6)
2.1 给出项目的分工表格与git地址
| 学生 | 负责任务 |
|---|---|
| 陈晓菲 | 大致框架的构建 |
| 廖文姑 | 界面具体布局 |
| 贾海涛 | 细节完善与代码结构调整 |
| 码云地址 |
2.2 尝试使用图形界面改写(截图你的程序,图形界面中需要出现你的姓名)
登录界面

用户注册


用户登录


用户界面

商品信息


添加商品


结算


2.3 将基于控制台界面的程序改写为基于GUI的程序这个过程碰到什么问题?总结:以后编写方法时,应该遵循一些什么原则?
因为之前编写这个系统的时候没有很好的进行后期代码结构的调整,导致整个程序逻辑上很混乱,后面实现图形界面的时候很多简单的问题都要花很长时间去解决,血的教训……
然后就是eclipse上的默认字符集是GBK,而NetBeans IDE上的是UTF-8,因此在同步两个项目之间的代码时,中文会有乱码的现象出现。
以后编写方法的时候,要注意整个代码的规范性,多考虑方法的可维护性和拓展性,不要将方法随便与某些业务进行绑定。
2.4 给出几个人在码云上同一项目的提交记录截图。如果某个人无提交记录,视为未完成。
码云上的项目就在刚刚不小心被我玩坏了,因此重新上传了一遍,在这给出之前的截图。

2.5 选做加分:通过LICEcap录制你的程序操作视频放到博客作业中。
视频由海涛同学录制,效果看起来也许还行?

3.其他:如果大作业实在搞不定,请完成实验任务书上的题目1、题目2、题目3。
题目一 NetBeans基本使用(GUI:计算A+B)



题目二 Swing用户界面组件与事件处理




题目三 使用NetBeans设计复杂用户界面(菜单)




5.选做:JavaFX入门
过程在教材中已经很详细了,在此只给出运行结果
第一部分:

第二部分:



3.统计本周完成的代码量
需要将每周的代码统计情况融合到一张表中。

| 周次 | 总代码量 | 新增代码量 | 总文件数 | 新增文件数 |
|---|---|---|---|---|
| 2 | 607 | 607 | 15 | 15 |
| 3 | 1642 | 1035 | 33 | 18 |
| 5 | 2044 | 402 | 42 | 9 |
| 6 | 2874 | 830 | 57 | 15 |
| 7 | 3161 | 287 | 63 | 6 |
| 8 | 4299 | 1138 | 72 | 9 |
201621123031 《Java程序设计》第7周学习总结的更多相关文章
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
- 20145337 《Java程序设计》第二周学习总结
20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...
- 20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
- 《Java程序设计》第二周学习总结
20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...
随机推荐
- 【SPOJ】Distinct Substrings/New Distinct Substrings(后缀数组)
[SPOJ]Distinct Substrings/New Distinct Substrings(后缀数组) 题面 Vjudge1 Vjudge2 题解 要求的是串的不同的子串个数 两道一模一样的题 ...
- 【BZOJ1012】【JSOI2008】最大数(线段树)
[JSOI2008]最大数 题目描述 现在请求你维护一个数列,要求提供以下两种操作: 1. 查询操作. 语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值. 限制:L不超过当前 ...
- [Luogu3527][POI2011]MET-Meteors
BZOJ权限题!提供洛谷链接! sol 昨晚突发奇想去学了一下整体二分. 这道题应该算是整体二分的板子题吧. 整体二分 首先要求可离线,不然还是安心码数据结构吧. 整体二分简单的来讲,就是时间复杂度可 ...
- 微信小程序天坑--图片汉字命名
图片用汉字命名的,在开发者工具中是显示的,但是,在真机的微信中,是不会显示的. 大写的尴尬,微信小程序开发者工具对于做微信的UI来说,就是一个天坑,在电脑上漂漂亮亮的,到手机上各种意想不到的情况.
- MinGW安装和使用
P.S.安装MinGW主要是code blocks 编译出现了这个问题: ERROR: You need to specify a debugger program in the debuggers' ...
- Scala编程快速入门系列(二)
目 录 一.Scala概述 二.Scala数据类型 三.Scala函数 四.Scala集合 五.Scala伴生对象 六.Scala trait 七.Actor 八.隐式转换与隐式参数 九.Sca ...
- 原生js获取left值和top值
在用js做动态效果时,通常需要获取元素绝对定位中的left和top属性值.比如做一个碰撞广告,就要不停的获取元素的top和left属性值. 需要注意的事:取值的元素必须要设置position:abso ...
- 用MATLAB结合四种方法搜寻罗马尼亚度假问题
选修了cs的AI课,开始有点不适应,只能用matlab硬着头皮上了,不过matlab代码全网仅此一份,倒有点小自豪. 一.练习题目 分别用宽度优先.深度优先.贪婪算法和 A*算法求解"罗马利 ...
- 关于在Editplus中设置内容提示比如syso的快捷输出的方法
在Editplus中默认的内容提示是很少的,比如我们最常用的syso快捷输出就没有,那么怎么来设置呢? 首先打开工具-首选项: 然后打开文件类型及语法-在文件类型中打开Java,如图: 然后打开 我们 ...
- kubernetes中kubeconfig的用法
在开启了 TLS 的集群中,每当与集群交互的时候少不了的是身份认证,使用 kubeconfig(即证书) 和 token 两种认证方式是最简单也最通用的认证方式. 以kubectl为例介绍kubeco ...