⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dynamicactionadapter.java

📁 learning java的源代码。书中每个实例都有相关的代码example。
💻 JAVA
字号:
//file: DynamicActionAdapter.javaimport java.awt.*;import java.util.Hashtable;import java.lang.reflect.Method;import java.awt.event.*;class DynamicActionAdapter implements ActionListener {  Hashtable actions = new Hashtable(  );  public void hookup( Object sourceObject, Object targetObject,                      String targetMethod ) {    actions.put(sourceObject,      new Target(targetObject, targetMethod));    invokeReflectedMethod( sourceObject, "addActionListener",      new Object[] {this}, new Class[] {ActionListener.class});  }  public void actionPerformed(ActionEvent e) {    Target target = (Target)actions.get( e.getSource(  ) );    if ( target == null )      throw new RuntimeException("unknown source");    invokeReflectedMethod(target.object, target.methodName,                          null, null);  }  private void invokeReflectedMethod(    Object target, String methodName,    Object [] args, Class [] argTypes ) {    try {      Method method =        target.getClass(  ).getMethod( methodName, argTypes );      method.invoke( target, args );    }    catch ( Exception e ) {      throw new RuntimeException("invocation problem: "+e);    }  }  class Target {    Object object;    String methodName;    Target( Object object, String methodName ) {      this.object = object;      this.methodName = methodName;    }  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -