第十一章2

第十一章

1、      GridLayout:网格布局

                      i.              布局效果:将容器区域划分成规则的矩形网格,每个单元格区域大小相等。组件被添加到每个单元格中,按组件加入顺序先从左到右填满一行后换行,行间从上到下。

构造方法
public GridLayout()
public GridLayout(int rows,int cols)
public GridLayout(int rows,int cols,int hgap,int vgap)

11.CardLayout:卡片布局

布局效果:将多个组件在同一容器区域内交替显示,相当于多张卡片摞在一起,只有最上面的卡片是可见的。

构造方法
public CardLayout()
public CardLayout(int hgap, int vgap)

其他方法
public void first(Container parent)—显示第一张卡片
public void last(Container parent)—显示最后一张卡片
public void previous(Container parent)—显示前一张卡片
public void next(Container parent)—显示后一张卡片
public void show(Container parent,String name)

 

 

一、事件处理:从JDK1.1开始,java采用了一种名为“委托事件模型”的事件处理机制,以支持javaGUI程序与用户的实时交互。

1、      javaGUI事件处理相关的重要概念包括:A、事件:当用户在组件上进行操作时会触发一个事件,对应的事件类对象会产生,事件类对象用于描述发生了什么事情。B、事件源:能够产生事件的GUI组件对象,如按钮、文本框等。C、事件处理方法:能够接收、解析和处理事件类对象,实现与用户交互功能的方法。D、事件监听器:调用事件处理方法的对象。

二、事件适配器:为简化程序员的编程负担,JDK中针对大多数事件监听器接口提供了相应的实现类(事件适配器Adapter),在适配器中,实现了相应监听器接口的所有方法,但不做任何处理,即只是添加了一个空的方法体。使用适配器类的优点:不用实现WindowListener接口中所有的抽象方法,需要哪个方法,重写哪个方法即可,使开发者得以解脱。

但需注意:适配器类并不能完全取代相应的监听器接口,由于Java 单继承机制的限制,如果要定义的监听器类需要同时处理两种以上的GUI事件,则只能直接实现有关的监听器接口,而无法只通过继承适配器实现。

import java.awt.event.WindowEvent;

import java.awt.event.WindowAdapter;

public class MyAdapter extends WindowAdapter{

     public void windowClosing(WindowEvent e){

         System.exit(0);

     }

}

三、内部类和匿名类在GUI 事件处理中的作用

1、内部类
Java GUI 事件处理中,经常采用内部类来定义监听器类,这是因为监听器类中封装的业务逻辑具有非常强的针对性,通常没有重用价值。而且作为内部类的监听器对象可以直接访问外部类中的成员,这可以提供很大的便利。

2、匿名类

addMouseMotionListener(new MouseMotionAdapter(){

  public void mouseDragged(MouseEvent e){

       txtDisplay.setText("鼠标位置"+e.getPoint());

  }

});

四、多重监听
由于事件源可以产生多种不同类型的事件,因而可以注册多种不同类型的监听器,但是当事件源发生了某种类型的事件时,只触发事先已就该种事件类型注册过的监听器。

1、事件源组件和监听器对象的对应关系:

1)针对同一个事件源组件的同一种事件也可以注册多个监听器。

2)针对同一个事件源组件的多种事件也可以注册同一个监听器对象进行处置。只是这要求监听器对象是一个多面手,即有能力处理各种不同类型的事件

3)同一个监听器对象可以被同时注册到多个不同的事件源上。

五、字体和颜色的控制

1Color

公共静态属性:共13个静态属性,分别代表13种不同的颜色常量。

构造函数

public Color(int r,int g,int b):以整数形式给出红、绿、蓝三个分量的值,每个分量的范围:0~255

public Color(float r,float g,float b)rgb均为单精度浮点数。取值范围为0.0f~1.0f

public Color(int rgb)rgb16~23位:红色分量;0~7位:蓝色分量,8~15位:绿色分量。

2、常用方法

     public int getRed():返回颜色对象的红色分量值

     public int getGreen():返回颜色对象的绿色分量值

     public int getBlue():返回颜色对象的蓝色分量值

设置颜色
设置组件的背景色和前景色:
public void setBackground(Color c):设置背景颜色
public void setForeground(Color c):设置前景颜色

3字体类Font
java.awt
包中提供了一个Font类用于构造字体对象,其中还提供了和字体相关的一些列的属性和方法。

公共静态属性
BOLD(粗体)、ITALIC(斜体)、PLAIN(普通)

构造函数
public Font(String name,int style,int size);
name
:指定字体名称; style:制定字体的外观;size:指定字体大小。单位为点(一个点=1/72英寸)

4Font类中常用的方法
public String toString()--返回字体的描述性字符串。
public int getStyle()--返回当前字体风格的整数值
public int getSize()--返回当前字体大小的整数值
public int String getName()--返回当前字体的名称
public String getFamily()--返回当前字体家族名称
public boolean isPlain()--当前字体是否是普通的风格
public boolean isBold()--当前字体是否是加粗的风格
public boolean isItalic()--当前字体是否是倾斜风格

5java.awt.Font类用于在GUI 开发中设置组件的上显示文字的字体,相应的方法在java.awt.Component 类中定义,具体格式为:
public void setFont(Font font)----设置字体
public Font getFont()----返回当前字体对象

六、AWT常用组件

1标签和按钮

标签Label:用于显示一行文本提示信息。它不能响应鼠标事件。

构造方法
publicc Label();
public Label(String str);
public Label(String str,int alignment)

2、参数alignment的取值有三种,用于指定标签中文本的对齐方式:

Label.LEFT,文本居标签组件左对齐

Label.CENTER,文本居中对齐

Label.RIGHT,文本居标签组件右对齐

其它常用方法
public String getText();
public void setText(String str);
public void setAlignment(in alignment)
public void setBackground(Color c);
public void setForeground(Color c);

3、按钮Button:用于接收用户的点击操作并触发相应的处理逻辑。

构造方法
public Button();
public Button(Stirng label);

触发的事件:当用户用鼠标点击按钮时触发ActionEvent事件,注册事件监听的方法:
public void addActionListener(ActionListener l)

4文本组件
所谓文本组件是指能够显示和编辑文本信息的组件。

5、文本框TextField:用于接收/编辑单行文本信息

构造方法
public TextField();
public TextField(int columns);
public TextField(String str);
public TextField(String str,int columns);

常用方法
public String getText(); 
public void setText(String str)
public String getSelectedText();
public void setEchoChar(char c);
public void setEditable(Boolean b);

6触发事件
TextField组件中按下回车键时,可以触发ActionEvent事件,因此在TextField组件上可注册ActionListener监听器,以关联所需的处理逻辑。

7、文本区TextArea:用来显示和编辑多行、多列文本信息,当显示文本超出了文本区的大小自动出现水平和垂直滚动条

构造方法
public TextArea();
public TextArea(int rows,int columns);
public TextArea(String str,int rows,int columns);
public TextArea(String str,int rows,int columns,int scrollbar);

常用方法
public String getText();
public void setText(String str);
public void append(String str);
public int getCaretPosition();
public void insert(String str,int pos);
public String getSelectedText();
public int getSelectionStart();
public int getSelectionEnd();
public void replaceRange(String str,int start,int end);

8、触发事件:TextEvent事件、MouseEvent事件

9选择组件
选择组件是指专门用于从多个条目中进行单选或多选操作的AWT组件。

复选框和单选按钮
复选框提供两种状态:选中|未选中。java.awt 包中的Checkbox类用于建立复选框。

构造方法
public Checkbox();
public Checkbox(String str);
public Checkbox(String str,Boolean b);
public Checkbox(String str,Boolean b,CheckboxGroup g);

其他方法
public Boolean getState();
public setState(boolean b);
public getLabel();
public setLabel(String s);

触发事件
选择或取消选择一个复选框会触发选项事件ItemEvent,对应的监听接口ItemListener,事件处理方法为:
public void itemStateChanged(ItemEvent e);

注册监听/删除监听的方法
public void addItemListener(ItemListener);
public void removeItemListener(ItemListener);

10、下拉列表框Choice
用户可以在下拉列表框中看到第一个选项和它旁边的箭头按钮,当用户单击箭头按钮时,选项列表打开。

构造方法
public Choice();

其他方法
public void add(String name);
public void insert(String name ,int index);
public void remove(String  name);
public void remove(int  index);
public void removeAll();

其他方法
public void select(String  name);
public void select(int  index);
public int getItemCount();
public int getSelectedIndex();
public String getSelectedItem();

触发事件
当用户在下拉列表框中选中某个列表项时就触发ItemEvent选项事件,监听接口:ItemListener。注册和删除监听的方法:
public void addItemListener(ItemListener l);
public void removeItemListener(ItemListener l);

11、列表框List
包含如干列表项,用户可以选择列表框中的一项或多项。当列表框中的列表项数超过了列表框的高度,则列表框自动增加垂直滚动条,用户可以通过滚动的方式选择列表项。

构造方法
public List();
public List(int n);
public List(int n,boolean b);

常用方法

其他方法
public int getSelectedIndex();
public String getSelectedItem();
public int[] getSelectedIndexes();
public String[] getSelectedItems();

触发事件

当用鼠标单击列表框的某个列表项后,触发ItemEvent事件;

当用鼠标双击某个列表项后,触发ActionEvent事件。

12、选择组件的两种不同使用方式:

将若干选择组件组成信息提交表单,然后整体提交和处理。

在某个选择组件的选择状态发生变化时,立即进行响应和处理。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(第十一章2)