资源描述
第9章 图形用户界面的事件处理
第9章 图形用户界面的事件处理
【实验目标】
完成本章的内容以后,您将达到:
u 掌握图形用户界面事件处理机制
u 掌握Swing实现事件处理
u 掌握匿名类、内部类
u 实现多监听器本章实验给出了全面的操作步骤,请学生按照给出的步骤独立完成实验,以达到要求的实验目标。
· 第一阶段——指导学习(40分钟)
1. 编写一个TestLayout.java,编译并运行
1) 建立文件名为“TestLayout.java”,输入以下程序代码。[注意:Java文件名必须与用public 修饰的类名保持一致]
import javax.swing.*;
import java.awt.*;
/**
* 布局使用示例
* @1.0版 2010年4月28日
* @author xx
*/
public class TestLayout extends JFrame{
JPanel p1,p2;//定义两个面板
JButton[] btnA;//定义按钮数组btnA
JButton[] btnB;//定义按钮数组btnB
BorderLayout bord;//边界布局
GridLayout grid;//网格布局
FlowLayout flow;//流式布局
public TestLayout(String title){
super(title);//标题
p1=new JPanel();//实例化p1面板
bord=new BorderLayout();
p1.setLayout(bord);//设置p1面板布局为边界布局
btnA=new JButton[5];//初始化数组
for(int i=0;i<5;i++)
{
btnA[i]=new JButton("按钮"+(i+1));//初始化每一个按钮
}
p1.add(btnA[0],BorderLayout.NORTH);//将按钮1加到p1面板北边
p1.add(btnA[1],BorderLayout.SOUTH);//将按钮1加到p1面板南边
p1.add(btnA[2],BorderLayout.WEST);//将按钮1加到p1面板西边
p1.add(btnA[3],BorderLayout.EAST);//将按钮1加到p1面板东边
p1.add(btnA[4],BorderLayout.CENTER);//将按钮1加到p1面板中间
p2=new JPanel();//实例化p2面板
grid=new GridLayout(3,3);
p2.setLayout(grid);//设置p2面板布局为3行3列网格布局
btnB=new JButton[9];//初始化数组
for(int i=0;i<9;i++)
{
btnB[i]=new JButton("按钮"+(i+1));//初始化每一个按钮
p2.add(btnB[i]);
}
flow=new FlowLayout();
this.setLayout(flow);//设置当前窗口布局为流式布局
this.add(p1);//将p1,p2加到当前窗口中
this.add(p2);
this.setBounds(200,200,350,300);//设置窗口容器的位置和大小
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗口关闭
this.show();//在桌面上显示窗口
}
public static void main(String[] args)
{
//实例化一个窗口对象
TestLayout t= new TestLayout("测试布局");
}
}
2)编译并运行。
2. 编写一个TestEvent.java,编译并运行
1) 建立文件名为“TestEvent.java”,输入以下程序代码。[注意:Java文件名必须与用public 修饰的类名保持一致]
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/**
* 行为事件使用示例
* @1.0版 2010年4月28日
* @author xx
*/
public class TestEvent extends JFrame{
JButton btn1,btn2;//定义两个按钮
JPanel p1;//定义一个面板
public TestEvent(String title)
{
btn1=new JButton("点我中奖");//实例化按钮
btn2=new JButton("点我退出");
MyListener my=new MyListener ();//实例化一个自定义的事件监听器
btn1.addActionListener(my);//将组件和事件监听器对象关联
btn2.addActionListener(my);//将组件和事件监听器对象关联
p1=new JPanel();
p1.add(btn1);
p1.add(btn2);
this.add(p1);
this.setTitle(title);
this.setBounds(100,100,400,300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.show();
}
public static void main(String[] args)
{
TestEvent t=new TestEvent("测试行为事件");
}
}
/**
*自定义行为事件处理器实现了行为事件监听器接口
*/
class MyListener implements ActionListener
{
//行为事件处理方法
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("点我中奖"))//判断命令字符串
{
JOptionPane.showMessageDialog(null,"恭喜你中了500万!");//弹出一个消息框
}else{
System.exit(0);//退出程序
}
}
}
2)编译并运行。
第二阶段——练习(40分钟)
习题一
实现简单的计算器的功能,可课后完成。
窗体底部
展开阅读全文