1:JTable 表格组件介绍
为清楚表示一系列数据,可以通过表格显示数据。在Swing中,表名由JTable类实现,JTable类的一个构运方法如下:
JTable(Object datal][].Object heads(l);
其中,data是一个二维数组,包含要显示的信息,heads是一个一维数组,其中的信息是列表头。在程序中使用表格,需要完成的步骤如下:
(1)创建一个JTable对象。
(2)创建一个JScrollPane对象(指定表格及水平和垂直滚动条)。
(3)将表格添加到滚动面板。
(4)将滚动面板添加到JFrame的内容窗格中。
1:菜单组件介绍
在Swing中,菜单通过JMenuBar、JMenu和JMenultem 实现。
(1)JMenuBar:代表菜单工具栏,可以在其中添加多个Jmenu菜单条。
(2)JMenu:代表菜单条,可以在其中添加多个JMenultem菜单项。
(3)JMenultem:代表菜单项。 高级应用
创建JMenuBar、JMenu和JMenultem 实例都可以直接通过其构造方法实现,构造方法中都含有一个字符串类型参数,该参数用于指定显示在菜单上的标题。例如,创建标题为“文件”的一级菜单条,代码如下:
JMenu jmf=new JMenu(文件(File)");
而创建菜单可以通过setMnemonic()方法设置快捷方式。为“文件”一级菜单设置快捷方式为“F”,并在该字母下添加下划线,代码如下:
jmf.setMnemonic(“F°);
创建菜单的步骤如下:
(1)创建菜单工具栏JMenuBaro
(2)创建多个菜单条JMenu。
(3)创建多个菜单项JMenultem。
(4)将菜单添加至对应的菜单条中。
(5)将菜单条添加至菜单工具栏中。
(6)将菜单工具栏加入窗体类JFrame中。
1: 事件处理机制
关于事件处理机制,需要理解以下几个概念:
1.事件
事件就是指发生在界面上的用户交互行为所产生的一种效果。例如,点击鼠标左键,单击一个JButton按钮就会弹出一个对话框,单击“关闭”按钮就会关闭应用程序窗口等。
2.事件源
发生事件的对象被称为事件源,如按钮、JFrame窗口均为事件源。
3.事件监听器
负责监听事件源所发生的事件,并对各种事件做出相应的处理。
Java 中的事件处理采用委托事件处理模式。所谓事件处理模式是指由事件源产生事件,委托给一个或多个事件监听器来监听事件。当监听器监听到事件被触发时,监听器根据事件产生的类型将其转交给事件处理者(即处理的方法)来处理事件。
2: 事件和事件监听器
事件机制涉及3个成员,即事件源、事件和事件监听器,其中事件源的创建仅需要通过 new 关键字创建一个组件对象,而事件由系统提供。所以,实现事件监听器是整个事件处理的核心。
事件监听器必须实现事件监听接口,JDK中通过了大量的事件监听器接口,用于实现不同类型的事件监听器,当听不同类型的事件。Swing中使用AWT的事件处理方式,所有的事件类均为EventObject的子类。这些事件态听的接口大多定义在java.awt.event中,常用事件监听接口详见表。
下表常用事件监听接口:
接口 | 说明 |
---|---|
ActionListener | 用于接收操作事件的监听器接口。例如点击按钮、点击莱单项、文本框按回车等动作 |
ItemListener | 用于处理选项事件的监听器接口。例如选择JCheckBox、 JRadioButton、JList以及JcomboBox中的选项 |
KeyListener | 用于接收键盘事件(击键)的监听器接口 |
续表:
接口 | 说明 |
---|---|
MouseListener | 用于处理鼠标事件(按下、释放、单击、进入或离开)的监听器接口 |
TextListener | 接收文本事件的监听器接口,用于监听文本组件内容改变。该监听器只有一个方法:textValueChanged(TextEvente) |
FocusListener | 接收组件上的键盘焦点事件的侦听器接口,用于监听组件收到或失去焦点 |
在Java中,AWT中的事件分为两大类,即低级事件和高级事件。
1.低级事件
componentEvent:组件事件,用于组件尺寸的变化和移动。
ContainerEvent:容器事件,当容器发生添加组件、删除组件时,触发该事件。
WindowEvent:窗口事件,当窗口状态发生改变,如打开、关闭、最小化时,触发该事件。
FocusEvent:焦点事件,当组件得到焦点或失去焦点时触发该事件。
KeyEvent:键盘事件,当按钮被按下、松开、单击时触发该事件。
MouseEvent:鼠标事件,当按钮被按下、松开、移动鼠标等动作时触发该事件。
2.高级事件
高级事件是基于语义的事件,它可以不与特定的动作相关联,而依赖于触发此事件的类。例如,在TextFied(文本城)中按下 Enter 盘就会触发ActionEvent 事件;在滚动条上移动滑块会触发 AdjustmentEvent事件;选中下拉列表中的某一项就会触发ItemEvent事件。
(1)ActionEvent:动作事件。当按钮、菜单项被单击,在TextField中按Enter键时触发该事件。
(2)AdjustmentEnvent:调节时间。在滚动条上移动滑块时触发该事件。
(3)**ItemEvent:**选项事件。当用户选中某项或取消选中某项时触发该事件。
(4)TextEvent事件:文本事件。当文本框、文本域中的文本发生改变时触发该事件。