首页 > 代码库 > 170227网络编程-事件处理
170227网络编程-事件处理
//本节课学得 使用内部类 外部类 匿名类添加侦听器的方法。
package event; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class MyFrame extends JFrame { /** * */ private static final long serialVersionUID = 1L; JButton jbtn; JLabel lbl; public MyFrame(){ this.setLocation(100,100); this.setSize(500,500); this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); jbtn=new JButton("测试"); lbl=new JLabel(); //(1)给按钮注册一个侦听器对象 jbtn.addActionListener(new FirstButtonListen()); //(2)给按钮注册一个侦听器对象 /*jbtn.addActionListener(new SecondButtonListen());*/ //(3)利用匿名类实现给按钮添加一个侦听器 /*jbtn.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub System.out.println("hello zhbit"); } });*/ //(2)利用内部类实现给按钮添加一个侦听器 //this.addWindowListener(new MyWindowListener()); //(3)使用内部类的方法添加WindowListener监听器 this.addWindowListener(new WindowListener(){ @Override public void windowActivated(WindowEvent arg0) { // TODO Auto-generated method stub } @Override public void windowClosed(WindowEvent arg0) { // TODO Auto-generated method stub System.out.println("windows is closed!"); } @Override public void windowClosing(WindowEvent arg0) { // TODO Auto-generated method stub System.out.println("windows is closing!"); } @Override public void windowDeactivated(WindowEvent arg0) { // TODO Auto-generated method stub } @Override public void windowDeiconified(WindowEvent arg0) { // TODO Auto-generated method stub } @Override public void windowIconified(WindowEvent arg0) { // TODO Auto-generated method stub } @Override public void windowOpened(WindowEvent arg0) { // TODO Auto-generated method stub lbl.setText("hello 我待会会记录坐标"); } }); this.addMouseMotionListener(new MouseMotionListener(){ @Override public void mouseDragged(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseMoved(MouseEvent e) { // TODO Auto-generated method stub int x=e.getX(); int y=e.getY(); lbl.setText("我的位置是x="+x+","+"y="+y+"。"); } }); this.add(jbtn); this.add(lbl); this.setLayout(new FlowLayout()); this.setVisible(true); } public static void main(String[] args){ new MyFrame(); } //(2)利用内部类实现给按钮添加一个侦听器 /*class SecondButtonListen implements ActionListener{ @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub System.out.println("hello the second way"); } }*/ //(2)利用内部类实现WindowListener监听 /*class MyWindowListener extends WindowAdapter{ @Override public void windowClosed(WindowEvent arg0) { // TODO Auto-generated method stub System.out.println("windows is closed!!!!"); super.windowClosed(arg0); } }*/ } //(1)创建一个Action类型的侦听器类 外部类 class FirstButtonListen implements ActionListener{ @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub System.out.println("hello the first way"); } }
课后习题
习题:利用图形界面编写一个简单的文本编辑器,包含一个文本域和一个保存按钮。单击保存按钮将文本域(TextArea)中的内容保存到一个文本文件mytext.txt中。
提示:
使用TextArea的getText()方法可以获得文本域中的内容。
使用内部类定义事件监听器,实现事件监听器接口ActionListener。
可使用fileWriter的Write(String str, int off, int len)方法将内容写入文件。
package event; import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*; public class test1 extends JFrame { JButton jb; JTextArea jta; public test1(){ this.setLocation(200,200); this.setSize(500,500); jta=new JTextArea(5,20); jta.setLineWrap(true); jb=new JButton("保存"); jb.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub try { getJta(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); this.addWindowListener(new WindowListener(){ @Override public void windowActivated(WindowEvent e) { // TODO Auto-generated method stub } @Override public void windowClosed(WindowEvent e) { // TODO Auto-generated method stub } @Override public void windowClosing(WindowEvent e) { // TODO Auto-generated method stub } @Override public void windowDeactivated(WindowEvent e) { // TODO Auto-generated method stub } @Override public void windowDeiconified(WindowEvent e) { // TODO Auto-generated method stub } @Override public void windowIconified(WindowEvent e) { // TODO Auto-generated method stub } @Override public void windowOpened(WindowEvent e) { // TODO Auto-generated method stub } }); this.add(jta); this.add(jb); this.setLayout(new FlowLayout()); this.setVisible(true); } void getJta() throws IOException{ String t; t=jta.getText(); System.out.println(t); write(t,0,t.length()); } public void write(String str,int off,int len) throws IOException{ String path="D://mytext.txt"; FileOutputStream fs=new FileOutputStream(path); OutputStreamWriter opsw=new OutputStreamWriter(fs); opsw.write(str); opsw.close(); fs.close(); } public static void main(String[]args){ new test1(); } }
170227网络编程-事件处理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。