1、第9章 图形用户界面的事件处理 第9章 图形用户界面的事件处理 【实验目标】 完成本章的内容以后,您将达到: u 掌握图形用户界面事件处理机制 u 掌握Swing实现事件处理 u 掌握匿名类、内部类 u 实现多监听器本章实验给出了全面的操作步骤,请学生按照给出的步骤独立完成实验,以达到要求的实验目标。 · 第一阶段——指导学习(40分钟) 1. 编写一个TestLayout.java,编译并运行
2、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
3、 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++) { btn
4、A[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
5、加到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)
6、//设置当前窗口布局为流式布局 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 TestLa
7、yout("测试布局"); } } 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{
8、 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);//将组件和事
9、件监听器对象关联 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(
10、"测试行为事件"); } } /** *自定义行为事件处理器实现了行为事件监听器接口 */ class MyListener implements ActionListener { //行为事件处理方法 public void actionPerformed(ActionEvent e) { if(e.getActionCommand().equals("点我中奖"))//判断命令字符串 { JOptionPane.showMessageDialog(null,"恭喜你中了500万!");//弹出一个消息框 }else{ System.exit(0);//退出程序 } } } 2)编译并运行。 第二阶段——练习(40分钟) 习题一 实现简单的计算器的功能,可课后完成。 窗体底部






