国光国光

2010年 4月12日 星期一 第十六天 多云转小雨
Exceptions
Java异常机制:
1、执行到引起异常语句时,生成异常对象(记录异常信息),并抛出
2、寻找catch语句,如果找到了执行catch,异常到此为止。
3、如果找不到,继续上抛,直到找到。
4、如果在main()中还未找到,程序中断。
5、异常每抛出一层,结束本层程序。
分类:
1、检测异常(编译时异常):一般无法绝对避免
2、非检测异常(运行时异常)
常见的RuntimeExceptinons
1、java.lang.ArithmeticException 算术异常
2、java.NullPointerException 空指针异常
3、java.lang.ArrayIndexoutofBoundsException 数组下标越界
4、java.lang.ClassCastException 类型转换异常 instanceof
5、java.lang.NumberFormatException 数字格式 String-->int
异常的处理方式:
1、try/catch/finally 捕获
2、throws 抛出 异常未处理,只是保证编译通过
用于抛出异常,但只是为了编译通过,未处理异常,因此 throws只用于检测异常
3、常见的RuntimeExceptinon,用if判断
方法的结束:
1、代码执行完毕
2、return 语句
3、抛出异常的瞬间(未捕获)
throw 用于程序员抛出异常
throws 为了编译通过
throw 抛出异常对象
throws后面跟类,放在方法/构造的{}之前
throw 后面跟对象,是语句
自定义异常:
1、继承Exception或其子类
2、提供两个构造,无参,String做参数
练习:自定义异常,并且使用。
写一个Person类(name和age),在setAge中,如果age不符合要求(0-130),可以抛出自定义的异常(AgeException)。
然后写一个main方法,调用setAge.

2010年4月13日 星期五 第十七天 雨
GUI
图形用户界面:
java.awt.*; 没表格、没图、没拖拽;有字体,按钮位置
javax.swing.*;
Swing常用组件(窗口、按钮、菜单……):
按钮:JButton
文本框:JTextField
菜单条:JMenuBar
菜单:JMenu
菜单项:JMenuItem
标签:JLable
容器(用于存贮组件):
JFrame 窗口(最外层)
JDialog 对话框
JPanel 面板(依附于JFrame或JDialog)
窗口和对话框可以单独存在,面板必须放入窗口或对话框
java.awt.event 事件处理(后台)
组件在容器中的大小和位置由布局管理器决定:开发时设置为null
FlowLayout特点: 默认居中
1、像Word打字
2、从左到右,一行满了,换行
3、保持组件的原始大小
JPanel面板默认为FlowLayout
BorderLayout
1、分成东、西、南、北、中五部分,每部分只能显示一个组件
2、北、南高度不变,西、东宽度不变,中部高度可变
3、组件不保持原始大小,会自动填满整个区域
4、默认情况下,组件放入中部
JFrame/JDialog 默认东部
GridLayout
1、网格状布局(n行,m列)
2、从左到右,从上到下,每格放一个
3、不保持组件的原始大小
CardLayout

一个容器只能提供一种布局,如果需要多个布局,可以使用JPanel
练习:
1、写计算器的界面,上边按钮的文字:
Backs CE C +
7 8 9 -
4 5 6 *
1 2 3 /
0,+/-, . ,=
2、写MSN/QQ的登录界面
第一行是 欢迎登录的标签(JLable)
第二行是 一个标签(email)和一个文本框
第三行是 一个标签(密码)和一个文本框
第四行是 两个按钮(确定和取消)
Event
事件源:事件的发起者
事件对象:事件的描述者
事件监听:事件处理者
awt事件处理:
1、实现接口(ActionListener)
2、重写actionPerformed(ActionEvene ae)方法
3、用addxxListener注册监听
4、监听方法中用到的组件,剪切做属性
练习:两个文本框,一个按钮,点按钮后,交换文本框内容
文本框、标签读写内容方法setText(String)/getText()

2010年4月14日 星期三 第十八天 中雨
菜单:
菜单栏:JMenuBar
菜单:JMenu
菜单项:JMenuItem
Jframe.setJMenuBar 添加菜单栏
JtextArea 多行文本
Timer 每隔一段时间自动调用ActionListener
start() 启动
stop() 停止
Jframe.dispose() 不退出JVM关闭
除了最外层的JFrame外,其他窗口不要setDef........()关闭!

你可能感兴趣的:(国光国光)