Source Code : Event Tracer
Java Is Open Source Programming Language You Can Download From Java and Java Libraries From http://www.oracle.com.
Click Here to download
We provide this code related to title for you to solve your developing problem easily. Libraries which is import in this program you can download from http://www.oracle.com.
Click Here or search from google with Libraries Name you get jar file related it
Event Tracer
/*
This program is a part of the companion code for Core Java 8th ed.
(http://horstmann.com/corejava)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.EventQueue;
import java.beans.BeanInfo;
import java.beans.EventSetDescriptor;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JSlider;
/**
* @version 1.13 2007-06-12
* @author Cay Horstmann
*/
public class EventTracerTest
{
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
JFrame frame = new EventTracerFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
}
}
class EventTracerFrame extends JFrame
{
public EventTracerFrame()
{
setTitle("EventTracerTest");
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
// add a slider and a button
add(new JSlider(), BorderLayout.NORTH);
add(new JButton("Test"), BorderLayout.SOUTH);
// trap all events of components inside the frame
EventTracer tracer = new EventTracer();
tracer.add(this);
}
public static final int DEFAULT_WIDTH = 400;
public static final int DEFAULT_HEIGHT = 400;
}
/*
This program is a part of the companion code for Core Java 8th ed.
(http://horstmann.com/corejava)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/**
* @version 1.31 2004-05-10
* @author Cay Horstmann
*/
class EventTracer
{
public EventTracer()
{
// the handler for all event proxies
handler = new InvocationHandler()
{
public Object invoke(Object proxy, Method method, Object[] args)
{
System.out.println(method + ":" + args[0]);
return null;
}
};
}
/**
* Adds event tracers for all events to which this component and its children can listen
* @param c a component
*/
public void add(Component c)
{
try
{
// get all events to which this component can listen
BeanInfo info = Introspector.getBeanInfo(c.getClass());
EventSetDescriptor[] eventSets = info.getEventSetDescriptors();
for (EventSetDescriptor eventSet : eventSets)
addListener(c, eventSet);
}
catch (IntrospectionException e)
{
}
// ok not to add listeners if exception is thrown
if (c instanceof Container)
{
// get all children and call add recursively
for (Component comp : ((Container) c).getComponents())
add(comp);
}
}
/**
* Add a listener to the given event set
* @param c a component
* @param eventSet a descriptor of a listener interface
*/
public void addListener(Component c, EventSetDescriptor eventSet)
{
// make proxy object for this listener type and route all calls to the handler
Object proxy = Proxy.newProxyInstance(null, new Class[] { eventSet.getListenerType() },
handler);
// add the proxy as a listener to the component
Method addListenerMethod = eventSet.getAddListenerMethod();
try
{
addListenerMethod.invoke(c, proxy);
}
catch (InvocationTargetException e)
{
}
catch (IllegalAccessException e)
{
}
// ok not to add listener if exception is thrown
}
private InvocationHandler handler;
}
Thank with us