快速业务通道

Java可复用事件处理的设计与实现解析 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
nt = frame.getContentPane(); JScrollPane scrollPane = new JScrollPane(area); cont.add(scrollPane,BorderLayout.NORTH); cont.add(button,BorderLayout.SOUTH); frame.pack(); frame.setVisible(true); } void setMessage(Object source) { if(source.equals(button)) { index = ++index % params.length; area.setText(params[index]); } } public static void main(String args[]) { if(args.length > 1) { UIDemo2 two = new UIDemo2(args); }else{ usage(); } } private static void usage(){ System.err.println  ("You may excute this program as below:"); System.err.println ("java UIDemo2 params1 params2 ..."); System.exit(-1); } } //SemiReusableActionListener import java.awt.event.*; public class SemiReusableActionListener implements ActionListener { private UIDemo2 demo2; SemiReusableActionListener (UIDemo2 uiDemo) { demo2 = uiDemo; } public void actionPerformed (ActionEvent ae) { demo2.setMessage (ae.getSource()); } } //UIDemo3 import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.lang.reflect.*; public class UIDemo3 { private JFrame frame; private JButton button1; private JTextArea area; private int index = -1; private String [] params; private UIDemo3(String args[]) { params = args;  area = new JTextArea(5,25); button1 = new JButton ("Click here!"); //setup required information to use GenericActionListener String methodName = "setMessage"; Class [] paramTypes = {java.lang.Object.class}; Object [] methodArgs = { button1 }; Class clazz = this.getClass(); try{ Method method = clazz.getMethod(methodName, paramTypes); button1.addActionListener(new ReusableActionListener (method, this, methodArgs)); } catch(Exception e){ System.out.println("Could not find the method: "+methodName+"\nNow Exiting..."); System.exit(-1); } frame = new JFrame (getClass().getName()); frame.addWindowListener (new ReusableWindowAdapter()); Container cont = frame.getContentPane(); JScrollPane scrollPane = new JScrollPane(area); cont.add(scrollPane,BorderLayout.NORTH); cont.add(button1,BorderLayout.SOUTH);  frame.pack(); frame.setVisible(true); } public void setMessage(Object source) { if(source.equals(button1)) { index = ++index % params.length; area.setText(params[index]); } } public static void main(String args[]) { if(args.length > 1){ UIDemo3 three = new UIDemo3(args); }else{ usage(); } } private static void usage() { System.err.println ("You may excute this program as below:"); System.err.println ("java UIDemo3 params1 params2 ..."); System.exit(-1); } } //ReusableWindowAdapter import java.awt.*; import java.awt.event.*; public class ReusableWindowAdapter extends WindowAdapter{ public void windowClosing (WindowEvent we){ Object source = we.getSource(); if(source instanceof Frame) { ((Frame)source).setVisible(false);  ((Frame)source).dispose(); System.exit(0); } } }

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号