第7章 程序设计案例分析
7.2 设计窗体
7.2.3 添加事件
前面我们设计的界面仅仅是一个外观,因为其没有事件处理程序,还不能响应事件,实 现用户操作。现在我们来给组件添加事件。
Java 编程语言使用事件来驱动 GUI 组件的行为。源对象可以触发事件,包含事件监听 器的一个或多个对象将通过事件处理程序响应这些事件。利用NetBeans IDE 可视化添加事 件处理程序要比手工编写更为方便。
我们可以使用组件的“属性”窗口或上下文菜单定义事件处理程序。使用“属性”窗口 定义事件处理程序的步骤如下(以startButton 的 Action 事件为例):
• 在“检查器”窗口中选择组件startButton,然后在“属性”窗口中单击“事件”。
• 在列表中单击所需事件的值actionPerformed。初始时,所有事件的值均为<无>。当 单击值字段时,<无>将替换为缺省事件名。如图 7-8 所示。
• 在属性表单中,键入所需的处理程序名称并按Enter 键,或者直接按 Enter 键以使 用缺省处理程序名称。如果未按Enter 键,将不生成任何代码。也可以单击事件的 省略号(...) 按钮以显示“处理程序”对话框。单击“添加”按钮,将新的名称 testWord 添加到处理程序列表中,然后单击“确定”。如图 7-9 所示。
• 此时系统自动生成事件监听器的代码和处理程序方法的空主体,如下所示。
//自动生成事件监听器的代码(不可编辑)
startButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { testWord(evt);
}
//处理程序方法的空主体(方法头不可编辑,但是方法体可编辑)
private void testWord(java.awt.event.ActionEvent evt) { // TODO 将在此处添加您的处理代码:
}
图 7-8 在组件属性窗口添加事件处理程序
图 7-9 定义事件处理程序 我们还可以使用上下文菜单定义事件处理程序:
• 在“文件”窗口、“项目”窗口或“检查器”窗口中,右键单击某个窗体组件。
• 从上下文菜单中选择“事件”,然后在子菜单中移动以选择事件。事件处理程序将 被赋以缺省名称。在“事件”子菜单中,粗体菜单项表示已定义的事件处理程序。
• 在源编辑器中添加新事件处理程序的代码。
选择要添加的 事件处理程序
如果多个事件具有相同的类型,或者使用的是相同的事件处理程序,此时可以对同一事 件的多个组件使用同一个处理程序。例如,本案例中,用作 ABCD4 个选择答案的 4 个 JRadioButton 组件 keyA、keyB、keyC、keyD 就是使用了同一个事件处理程序 keyChosen。
对于自动生成事件监听器的代码和处理程序方法,无法在源编辑器中手工直接删除。要
1: private void keyChosen(java.awt.event.ActionEvent evt) { 2: //选择答案
14: setupButtonActionPerformed(java.awt.event.ActionEvent evt) { 15: // 设置
16: setup();
17: } 18:
19: private void testWord(java.awt.event.ActionEvent evt) { 20: //测试
21: test();
22: }
7.3 设计菜单和对话框
设计菜单和对话框是图形界面应用程序的最常见特征,菜单可以用于调用不同的程序操 作模块,而通过对话框则可完成特定的设置或操作任务。