java心得--check、list、scroll、dialog
1. 选择组件
选择组件是指专门用于从多个条目中进行单选或多选操作的AWT组件。
µ 复选框和单选按钮
复选框提供两种状态:选中|未选中。java.awt 包中的Checkbox类用于建立复选框。
ü 构造方法
public Checkbox()
public Checkbox(String str) :复选框右边的标题文本
public Checkbox(String str,Boolean b): b是复选框的初始状态
public Checkbox(String str,Boolean b,CheckboxGroupg):复选框属于哪一组,这时的复选框即为单选按钮其他方法
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 voidremoveItemListener(ItemListener);
2. 下拉列表框Choice
用户可以在下拉列表框中看到第一个选项和它旁边的箭头按钮,当用户单击箭头按钮时,选项列表打开。
ü 构造方法
public Choice();
ü 其他方法
public void add(String name):增加一个列表项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):把下拉列表框中名称是name选项设置成选中状态。
public void select(int index);
public int getItemCount():返回列表项的总数。
public int getSelectedIndex():返回当前下拉列表框中被选中的列表项的索引值,索引的起始值是0.
public String getSelectedItem():返回当前下拉列表框中被选中的列表项的名称。
ü 触发事件
当用户在下拉列表框中选中某个列表项时就触发ItemEvent选项事件,监听接口:ItemListener。注册和删除监听的方法:
public void addItemListener(ItemListener l);
public void removeItemListener(ItemListener l);
以上方法中index的值均为非负值,并且小于下拉列表框的列表项总数,否则会发生ArrayIndexOutOfBoundsException异常。
3. 列表框List
包含如干列表项,用户可以选择列表框中的一项或多项。当列表框中的列表项数超过了列表框的高度,则列表框自动增加垂直滚动条,用户可以通过滚动的方式选择列表项。
ü 构造方法
public List();
public List(int n);
public List(int n,boolean b):参数n设置可见行数,b为true时设置是否允许多选,否则禁止多选。
ü 常用方法
ü 其他方法
public int getSelectedIndex();
public String getSelectedItem();
public int[] getSelectedIndexes():所有列表项的索引值项目。
public String[] getSelectedItems();
ü 触发事件
µ 当用鼠标单击列表框的某个列表项后,触发ItemEvent事件;
µ 当用鼠标双击某个列表项后,触发ActionEvent事件。
4. 选择组件的两种不同使用方式:
µ 将若干选择组件组成信息提交表单,然后整体提交和处理。
µ 在某个选择组件的选择状态发生变化时,立即进行响应和处理。
5. 滚动组件
AWT中的滚动组件包括Scrollbar(滚动条)和滚动面板(ScrollPane)两种。
µ 滚动条ScrollBar:在指定的取值范围内快速选取某一值的功能。
µ 构造方法
public Scrollbar(int orientation,int value,int visible,int minimum,int maximum)
参数orientation的取值:Scrollbar.HORIZONTAL表示水平滚动条;Scrollbar.VERTICAL表示垂直滚动条。Value:滑块在滚动条中的初始值。 Visible:滑块大小。 Minimum:滑块最小值。 Maximum:滑块最大值。
ü 常用方法
public void setValue(int value);
public int getValue();
public void setBlockIncrement(int value):指定滚动条的块增量。
public void setUnitIncrement(int value):指定滚动条的单位增量。
ü 触发事件
当用户通过鼠标操作(比如拖动滑块位置)来改变滚动条中滑块的位置时,会触发AdjustmentEvent类型事件,对应的监听接口为:AdjustmentListener,事件处理方法:
public void adjustmentValueChanged( AdjustmentEvent e);
滚动条注册或删除事件监听的方法:
public void addAdjustmentListener(AdjustmentListener l);
public void removeAdjustmentListener(AdjustmentListener
滚动面板:
Java.awt.ScrollPane该类直接继承了Container,但和其他的组件(如:Frame、Panel)有所不同,ScrollPane组件只包含单个组件并支持对所包含的组件进行水平或垂直方向的滚动操作(可以采用容器嵌套的方式实现一个滚动面板中同时显示/滚动多个组件)。且没有默认的布局管理器(其默认布局管理器为null),也不允许使用setLayout()方法设置其布局方式。
可以将ScrollPane理解为拥有水平和垂直滚动条的特殊Panel。
6. 菜单组件
菜单组件包括包括MenuBar(菜单条)、Menu(菜单)、MenuItem(菜单项)、CheckboxMenuItem(带复选框的菜单项)和PopupMenu(弹出式菜单)。
其使用的原则是:
先创建菜单条对象并将其添加到指定菜单容器(即能够容纳MenuBar的容器)中,再向菜单条中添加菜单Menu组件,菜单组件可以嵌套包含同类组件以实现多级菜单,只有最后一级才使用菜单项,MenuItem的用法跟Button相同,常在其上注册ActionListener监听器已触发真正的处理逻辑。
µ 菜单条MenuBar
MenuBar mb=new MenuBar();
frame.setMenuBar(mb);
µ 菜单Menu
Menu mnFile=new Menu(“文件”);
Menu mnEdit=new Menu();
mb.add(mnFile);
mb.add(mnEdit);
µ 菜单项MenuItem
public MenuItem();
public MenuItem(String label);
public MenuItem(String label,MenuShortcut s);
参数s用于设置菜单项的快捷键,是MenuShortcut类的对象,该类的构造函数为MenuShortcut(intkey);参数key取KeyEvent类中的静态常量
MenuItem miOpen=new MenuItem(“打开”);
MenuShortcut msc=new MenuShortcut(KeyEvent.VK_E);
mnFile.addSeparator():分隔条
菜单项触发的事件:ActionEvent
7.二级菜单和复选菜单项
µ 二级菜单:菜单中嵌套菜单
µ 复选菜单项(CheckboxMenuItem)
注意:用鼠标单击复选菜单项引发的事件是ItemEvent,因此要具体实现的监听接口为ItemListener。
8. 弹出式菜单(PopupMenu)
µ 构造方法
public PopupMenu();
例如:PopupMenu popM=new PopupMenu();
MenuItem miOpen=new MenuItem(“打开”);
MenuItem miSave=new MenuItem(“保存”);
popM.add(miOpen);
popM.add(miSave);
µ 由于弹出式菜单默认是不可见的,通常将它附着在某个组件或容器上,然后对该组件或容器增加鼠标监听。例如:txt.add(popM);
µ 显示弹出式菜单
public void show(Component origin,int x,int y);
µ 鼠标事件类中的方法isPopupTrigger()用于返回鼠标事件是否为该组件的弹出菜单触发的事件。
Windows系统中是鼠标右键松开时触发的。而Mac OS系统中则是当鼠标按下时触发的,为了简化编程,MouseEvent类提供了一个统一的方法isPopupTrigger()来检测此当前鼠标事件是否为所在平台的弹出式菜单触发事件,如果是则返回true。
9. 对话框
µ 对话框组件Dialog:界面效果和Frame类似,是一个拥有边框和最大化、最小化、关闭按钮的顶级窗口,其中也可以添加其他的组件或容器,但不同之处在于对话框组件主要用于接收用户某种形式的简单输入,起到“确认”操作或“警告/提示”的作用。
10. 需注意:
Dialog组件的默认布局管理器是BorderLayout类型,且默认初始化为不可见的,需要使用setVisible(true)方法使之显示出来
Dialog组件虽然是顶级窗口,但必须依赖一个其他的窗口而不能单独存在,所依赖的窗口称为对话框的所有者(Owner),通常是Frame或其他Dialog。
当其所有者窗口最小化时,Dialog也会自动隐藏为对用户不可见,当所有者窗口被还原时,Dialog重新变为可见。
11. 通过建立Dialog的子类来建立一个对话框类,然后这个类的一个实例,即该类的一个对象,就是一个对话框。
构造方法
public Dialod(Frame f,String s):构造一个具有标题的初始不可见的对话框,s是对话框的标题,f是对话框的所有者。
public Dialod(Frame f,String s,boolean b):b决定对话框是否为有模或无模式。
µ 常用方法
public String getTitle();
public void setTitle();
public void setModal(Boolean model):设置模式
public void setSize(int width,int height);
public void setVisible(boolean b);
12. 对话框分为无模式对话框(ModelessDialog)和有模式对话框(Modal Dialog)两种:
- 有模式对话框将阻断输入到其所在应用程序中其他所有窗体的内容,例如MS Word中的文件对话框。
- 无模式对话框显示与否都不影响所在应用程序其他窗体的,通常用于提供非必须的辅助性功能,如Word的“查找/替换”对话框。
13. 文件对话框FileDialog
文件对话框java.awt.FileDialog,继承了Dialog类,但属于有模式对话框,用于在打开和保存文件时指定文件的路径和文件名。默认为打开方式,也可以在构造方法中显示指定其工作方式。
µ 构造方法
public FileDialog(Frame f,String s, int mode):mode指定对话框的工作方式:“打开”或“保存”,取值:FileDialog.LOAD、FileDialog.SAVE
µ 常用方法
public String getDirectory():返回文件对话框中选定文件的所属目录。
public String getFile():返回文件对话框中选定文件名,如果文件不存在则返回null。
14. 需注意,文件对话框仅仅提供了一个文件操作的界面,要真正实现对文件的操作应使用文件的输入输出流(方法loadFile()、saveFile()和saveFileAs()中都用到了文件的输入/输出流的操作)。