作业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周学习总结的更多相关文章

  1. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  2. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  3. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  4. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  5. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  6. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  7. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  8. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

  9. 《Java程序设计》第九周学习总结

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

  10. 《Java程序设计》第二周学习总结

    20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...

随机推荐

  1. mongodb在windows下安装启动

    mongodb安装 mongodb配置 创建几个文件夹具体如下:数据库路径(\data\db\目录).日志路径(\data\log\目录)和日志文件(mongod.log文件)c:\data\log\ ...

  2. 期望$DP$ 方法总结

    期望\(DP\) 方法总结 这个题目太大了,变化也层出不穷,这里只是我的一点心得,不定期更新! 1. 递推式问题 对于无穷进行的操作期望步数问题,一般可用递推式解决. 对于一个问题\(ans[x]\) ...

  3. 【NOIP2006】能量项链

    题面 Description 在 Mars 星球上,每个 Mars 人都随身佩带着一串能量项链.在项链上有 N 颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且,对于相邻的 ...

  4. 【Webpack的使用指南 02】Webpack的常用解决方案

    说是解决方案实际上更像是webpack的插件索引. 写这一篇的目的是为了形成一个所以,将来要用时直接来查找即可. 索引目录 1.自动构建HTML,可压缩空格,可给引用的js加版本号或随机数:html- ...

  5. JavaScript中的私有成员[翻译]

    原作者:Douglas Crockford,原文地址:http://www.crockford.com/javascript/private.html JavaScript 是世界上被误解最深的编程语 ...

  6. APNS IOS 消息推送

    一.Apns简介: Apns是苹果推送通知服务. 二.原理: APNs会对用户进行物理连接认证,和设备令牌认证(简言之就是苹果的服务器检查设备里的证书以确定其为苹果设备):然后,将服务器的信息接收并且 ...

  7. eclipse热部署web项目

    一.选中JavaEE视图 因为在普通的Java视图下,窗口下方没有server选项卡 二.双击Tomcat 注意:可能很多人当然包括我一开始的时候,都是喜欢右键Tomcat然后Add and remo ...

  8. 初探JodaTime

    在学习java之初时就使用过jdk自带的java.util.Calendar ,近期的项目中需要达到类似功能的时候使用了JodaTime. Joda-Time 令时间和日期值变得易于管理.操作和理解. ...

  9. UWP 圆形菜单

    用过Surface dial的童鞋们都很熟悉,当使用Dial的时候,那个圆形菜单很漂亮,那么我们在普通的uwp中是否也可以实现吗? 答案是肯定的. 其实这是来源于GayHub的一个开源项目,做的很不错 ...

  10. 微信小程序开发之--”emplate模板“的应用

    第一步:定义模板 ①:新建一个template文件夹用来管理项目中所有的模板(本文案例定义文件夹名为:temp): ②.新建一个wxml文件来定义模板(本文案例定义文件夹名为:temp.wxml): ...