JAVA布局管理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JA V A布局管理
一、FlowLayout(流布局管理):其组件的放置规律是从上到下,从左到右依次进行放置。构造方法有下列几种:
1.F lowLayout():创建每行组件居中对齐、组件间距为5个像素单位。
2.F lowLayout(int align):创建指定每行的对齐方式、组件间距为5个像素单位。
align取值表示组件的对齐方式:CENTER(居中对齐),LEFT(左对齐),RIGHT(右对齐)。
二、BorderLayout(边框布局管理):将容器分为上、下、左、右、中五个区域,分别对应North(北区),South(南区),West(西区),East(东区)和Center(中区)。用add(component,index)方法向容器中添加组件,其中第二个参数指明组件位置,其取为:BorderLayout.North,BorderLayout.South,BorderLayout.East,BorderLayout.West,BorderLayout.Center。其构造方法有中下几种:
1.B orderLayout():创建组件间无间距的布局对象。
2.B orderLayout(int hgap,int vgap):创建指定组件间距的布局对象。
三、GridLayout(网格布局管理器):将容器分成尺寸相同
的网格,组件被放在网格的空白处,顺序与流式布局一样。
网格中组件大小相同。其构造方法有下列几种:
1.GridLayout()以每行一列的方式构建一个GridLayout
对象。
2.GridLayout(int row,int columns):根据指定行数和列数
构造一个GridLayout对象,组件间距为0。
3.GridLayout(int row,int columns,int hgap,int,vgap): 根据
指定行数和列数构造一个GridLayout对象,组件间距按指定值设置。
四、CardLayout( 卡片布局管理器):它将组件放在一系
列卡片上,一次只能看到一张卡片,一张卡片只能放一个组件。使用构造方法CardLayout()可以构建CardLayout对象。
组件按添加顺序存放在卡片序列中,使用下列方法将组件添加到容器中:
add(Component,component,String name);
name是卡片中组件的标识。
为了使组件在使用CardLayout容器中可见,可使用CardLayout对象的下列方法:
1)first(Container container):显示第一张卡片。
2) last(Container container):显示最后一张卡片。
3)nextContainer container):显示下一张卡片。
4)show(Container container,String name):显示容器中指定名称的卡片。
五、GridBagLayout(网格块布局管理器):与GridLayout
相似,不同的是GridBagLayout的组件大小可以不同,可以按任意顺序添加。使用较少。
举例:
1、用户登录界面的创建:
import javax.swing.*;
import java.awt.*;
publib class login{
public static void main(String agrs[]){
JFrame f=new JFrame();
f.setSize(220,120);
s.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel l_username=new JLabel(“用户名”);
JLabel l_password=new JLabel(“密码”);
JTextField t_username=new JTextField();
JPasswordField t_password=new JPasswordField();
JButton b1=new JButton(“登录”);
JButton b2=new JButton(“注册”);
JButton b3=new JButton(“取消”);
JPanel p1=new JPanel();
p1.setLayout(new GridLayout(2,2)); p1.add(l_username);
p1.add(l_password);
p1.add(t_username);
p1.add(t_password);
JPanel p2=new JPanel();
p2.setLayout(new FlowLayout()); p2.add(b1);
p2.add(b2);
p2.add(b3);
f.setLayout(new BorderLayout());
f.add(p1,Border.CENTER);
f.add(p2,Border.SOUTH);
f.setVisible(true);
}
}
JAVA事件处理
所谓事件处理,是指Java应用能够对某些事件作出响应。发出事件的对象称为事件源,对事件感兴趣的对象,称为监听器。事件处理就是事件源发出事件,监听器捕获事件并作出响应的过程。
事件可以来自Java应用程序范围之内,例如用户点击按钮,也可以来自应用程序范围之外,例如应用服务器关机等。一个事件中,通常包含一些必要的信息,例如事件源和事件类型等。在Java中,每种事件都是一个事件类,而具体的事件则是事件类的实例。
Java应用运行过程中,程序本身及其周边环境不断发生变化,可能的事件种类非常之多。对所有事件都响应是不现实的,因此,事件处理允许Java应用有选择地响应某些事件。这个选择感兴趣的事件的过程,称为注册。因此,所谓注册,就是某对象向事件源提出申请,表明自己对某类事件感兴趣,希望该事件发生时得到通知。提出申请的对象称为监听器。监听器将接收到自己感兴趣的事件,其他不感兴趣的事件则接收不到。
监听器之所以要捕获某类事件,是因为这类事件与其有关系。例如,“确定”按钮的action事件的监听