com.gargoylesoftware.base.gui
public class ReflectedAction extends AbstractAction
ReflectedAction is a Swing "action" that uses reflection to call a specific target method when the action is fired. Actions are often implemented using inner classes which can be very inefficient in terms of performance and deployment size. This action is a tiny bit slower when it is actually fired but is smaller and generally faster otherwise due to the fact that those inner classes are no longer needed.
Action searchAction = new ReflectedAction(this, "performSearch");
Version: $Revision: 1.4 $
Field Summary | |
---|---|
String | methodName_ |
Object | object_ |
static long | serialVersionUID |
Constructor Summary | |
---|---|
ReflectedAction(Object object, String methodName)
Create a reflected action with an object and the name of the method that
will be invoked on that object when the action is fired.
|
Method Summary | |
---|---|
void | actionPerformed(ActionEvent event)
The action has been fired so now we use reflection to invoke the method that
was specified previously.
|
protected void | assertNotNull(String fieldName, Object object)
Throw an exception if the specified object is null |
protected void | exceptionThrown(Exception exception)
Callback that will be invoked if an exception is thrown during the
reflected method call. Override this to provide custom error handling. |
Method | findMethodOnObject(Object object, String methodName)
Return the Method object that corresponds to the specified method name.
|
Parameters: object The object upon which we will invoke a method when the action is fired methodName The name of the method that we will invoke. This method must take either no parameters or one parameter which is an ActionEvent.
Throws: IllegalArgumentException if there are no matching methods.
Parameters: event The ActionEvent
Parameters: fieldName The name of the paremeter we are checking object The value of the parameter we are checking
Override this to provide custom error handling. Default behaviour is to print a stack trace.
Parameters: exception The exception
Parameters: object The object that contains the method methodName The name of the method that we're looking for
Returns: The method that matches the specified name.
Throws: IllegalArgumentException If there aren't any methods that match. SecurityException If we do not have access to this method.