JAVA 第九章(下) 实验手册.doc_第1页
JAVA 第九章(下) 实验手册.doc_第2页
JAVA 第九章(下) 实验手册.doc_第3页
JAVA 第九章(下) 实验手册.doc_第4页
JAVA 第九章(下) 实验手册.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章 图形用户界面的事件处理第9章(下) 图形用户界面的事件处理 【实验目标】 完成本章的内容以后,您将达到:u 掌握图形用户界面事件处理机制u 掌握Swing实现事件处理u 掌握匿名类、内部类u 实现多监听器本章实验给出了全面的操作步骤,请学生按照给出的步骤独立完成实验,以达到要求的实验目标。 第一阶段指导学习(40分钟)1. 编写一个EventDemoFrame.java,编译并运行1) 建立文件名为“EventDemoFrame.java”,输入以下程序代码。注意:Java文件名必须与用public 修饰的类名保持一致import javax.swing.*;import java.awt.event.*;import java.awt.*;/* * 事件演示类,该类继承JFame窗口类 * 实现了FocusListener焦点事件监听器接口 * 和ActionListener行为事件监听器接口 * 1.0版 2010年5月5日 * author xx */public class EventDemoFrame extends JFrame implements FocusListener,ActionListenerprivate JLabel lb1,lb2;/两个标签JTextField text;/文本框JPasswordField pass;/密码框JPanel p1,p2,p3;/三个面板JButton btn1,btn2;/两个按钮public EventDemoFrame()/实例化面板1p1=new JPanel();lb1=new JLabel(用户名:);/实例化标签text=new JTextField(10);/实例化文本框text.addFocusListener(this);/关联焦点事件处理类对象p1.add(lb1);/往面板1中增加标签和文本框p1.add(text);/实例化面板2p2=new JPanel();lb2=new JLabel( 密码:);/实例化标签pass=new JPasswordField(10);/实例化密码框pass.addFocusListener(this); /关联焦点事件处理类对象p2.add(lb2);/往面板2中增加标签和密码框p2.add(pass);/实例化面板3p3=new JPanel();btn1 =new JButton(登录);/实例化按钮btn2 =new JButton(重置);btn1.addActionListener(this);/关联行为事件处理类对象btn2.addActionListener(this); /关联行为事件处理类对象p3.add(btn1);/往面板3中增加两个按钮p3.add(btn2);/为当前窗口关联窗口事件监听器(使用匿名类实现)this.addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.out.println(使用继承窗口事件适配器的匿名类来实现窗口关闭);System.exit(0););this.setLayout(new FlowLayout();/设置当前窗口为流式布局this.add(p1);/将p1,p2,p3添加到窗口中this.add(p2);this.add(p3);this.setTitle(登录);this.setBounds(300,100,300,160);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);/* *行为事件方法 */public void actionPerformed(ActionEvent evt)/事件处理方法String sourceName=evt.getActionCommand();/获得事件源信息if(sourceName.equals(登录)if(text.getText().trim().equals()/判断是否输入了用户名JOptionPane.showMessageDialog(this,请输入用户名!);text.requestFocus();/文本框重新获取输入焦点return;if(pass.getText().trim().equals()/判断是否输入了密码JOptionPane.showMessageDialog(this,请输入密码!);pass.requestFocus();/密码框重新获取输入焦点return;JOptionPane.showMessageDialog(this,恭喜你,登录成功!);else if(sourceName.equals(重置)text.setText();/将文本框和密码框内容置空pass.setText();text.requestFocus();/用户名输入框获取焦点/* *获取焦点方法 */public void focusGained(FocusEvent e)if(e.getSource()=text)/判断事件源是不是文本框System.out.println(用户名输入框获得焦点);else System.out.println(密码输入框获得焦点);/* *失去焦点方法 */public void focusLost(FocusEvent e)if(e.getComponent()=text) /判断事件源是不是文本框System.out.println(用户名输入框失去焦点);elseSystem.out.println(密码输入框失去焦点);public static void main(String args)EventDemoFrame demo=new EventDemoFrame();2)编译并运行效果如下。2. 编写一个TestInputStream.java,编译并运行1) 在c:创建一个abc.txt文件,输入内容”中国,湖南”并存盘2) 建立文件名为“TestInputStream.java”,输入以下程序代码。注意:Java文件名必须与用public 修饰的类名保持一致import java.io.*;/* * 字节输入流演示类 * 1.0版 2010年5月5日 * author xx */public class TestInputStreampublic static void main(String args)tryFile f=new File(c:abc.txt);/创建一个指向abc.txt的文件对象String content=;/定义一个空字符串用来存放文件内容if(f.exists()/如果文件存在读取文件中的内容,输出内容FileInputStream fis = new FileInputStream(f);/建立文件输入流BufferedInputStream buffFis = new BufferedInputStream(fis);/建立缓冲输入流byte b = new byte1024;/定义一个1024长度的字节数组int i = 0;/若文件中有内容则进行读操作if (buffFis.available() != 0 )i = buffFis.read(b);/从缓冲输入流中读取一个byte信息content = new String(b,0,i);/将读取的实际的字节数组信息转换成字符串信息System.out.println(content);/输出文件内容buffFis.close();/关闭缓冲输入

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论