1.Awt与Swing
*Awt包需要调用贝蒂系统方法实现功能,属于重量级空控件。
*Swing是在Awt的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由java实现。
增强了移植性,属于轻量级控件。
2.继承关系图:
Component:一个具有图形表示功能的对象。
|--Container:为容器,是一个特殊的组件,该组件中可以通过add方法添加其他组件进来。
|--Window:窗口
|--Frame:框架
|--Dialog:对话框
|--FileDialog:文件对话框,用于操作文件的对话框。
|--Panel:面板
|--Button:按钮,最常用组件
|--Label:标签,用于组件封装文字
|--Checkbox:复选框
|--TextComponent:文本组件
|--TextArea:文本区域
|--TextField:文本框
3.常见的布局管理器:
FlowLayout(流式布局管理器):从左到右的顺序排列,Panel默认的布局管理器。
BorderLayout(边界布局管理器):东、南、西、北、中。Frame默认的布局管理器。
GridLayout(网格布局管理器):规则的矩阵
CardLayout(卡片式布局管理器):选项卡
GridBagLayout(网格包布局管理器):非矩阵的矩阵
4.事件监听机制的特点:
*事件源:就是awt包或者swing包中的那些图形界面组件。
*事件:每一个事件源都有自己特有的对应事件和共性事件。
*监听器:将可以出发某一个事件的动作(不只一个动作)都已经封装到了监听器重。
*事件处理:按照自定义的方式对发生的事件处理。
*添加监听器的一般方法
addXXXListener(XXX 对象):每添加一个事件监听器,都需要接受一个事件对象,
并在事件对象中实现对该事件的处理方法。或者匿名内部类,或者重新定义一个类
//捕捉鼠标双击事件
public void mouseClicked(MouseEvent e){
if(e.getClickCount()==2)
System.out.println("双击动作"+clickCount++);
}
//捕捉键盘事件,给Button类的对象but添加一个键盘监听器,如下
but.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
//获取ctrl+enter组合键。
if(e.isControlDown()&&e.getKeyCode()==KeyEvent.VK_ENTER)
System.out.println("ctrl+enter is run");
//KeyEvent.getKeyText(e.getKeyCode()):按照键的code值获取相应键的字符串表示。
System.out.println(KeyEvent.getKeyText(e.getKeyCode())+".."+e.getKeyCode());
}
});
//阻止非法字符录入,在TextField对象tf中添加事件监听器
tf.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
int code = e.getKeyCode();
if(!(code>=KeyEvent.VK_0 && code<=KeyEvent.VK_9)){
System.out.println(KeyEvent.getKeyText(e.getKeyCode())+"...是非法的");
e.consume();//取消当前键值的录入。
}
}
});
*Frame:常用方法
setSize(high,wide):设置窗口大小。
setVisible(boolean):设置窗口是否可见。
setLocation(坐标):设置窗口初始位置。
5.Dialog:对于错误信息的处理,弹出对话框
//参数:Frame f:设置对话框所属的窗体;title:对话框的标题;visible:判断对话框是否可见
Dialog d = new Dialog(Frame f,String title,boolean visible);
Label l = new Label();//利用label对象封装文字添加到弹出的对话框中
*装饰效果:
按照窗体的布局效果对弹出的对话框进行属性设置。
6.菜单的设置:
*设置菜单用到的类:MenuBar,Menu,MenuItem;
*三者关系描述:Menu extends MenuItem,Menu add(MenuItem);
Menu 继承自MenuItem,并且Menu可以添加MenuItem对象。
Menu 对象可以被设置成子菜单,MenuItem只能设置为菜单下的条目(选项或称为菜单项)。
想要在窗体中添加菜单就得先添加MenuBar(菜单条),然后将菜单Menu添加到菜单条中。
7.FileDialog:文件对话框
FileDialog(Dialog parent, String title, int mode)
创建一个具有指定标题的文件对话框窗口,用于加载或保存文件。
对于是加载还是保存,则要看mode参数的设置了。FileDialog.LOAD或FileDialog.SAVE
其中对文件的操作要用到IO流对象。
*对于文件的保存:
如果文件已经存在,则修改后保存,不弹出文件对话框。
如果文件不存在,则弹出文件对话框,并保存。
*保存文件概述:
保存文件分为两种:一种是刚打开的文件,修改后再保存,这种就不需要弹出对话框,并且在打开文件的时候,
可以获取到文件的对象,把文件的对象设置为成员,至于是否弹出对话框,则要判断文件对象是否为null,
若为null,则需要弹出对话框并指定文件名。若不为null,则直接将修改后的文件保存到原有文件即可。
第二种是新写的文件内容,还没有保存的。这样的文件保存时就需要弹出对话框并指定名称了。当然判断条件
同样是文件对象是否为null。