A few lines will do the job:
private void callee() { // Who called me Throwable t = new Throwable(); StackTraceElement[] elements = t.getStackTrace(); System.out.println("----------------------------------"); for (StackTraceElement ste : elements) System.out.println(ste.toString()); System.out.println("----------------------------------"); // More stuff goes here... }Whenever the code above is invoked, like from a button click for example
JButton bing = new JButton("Hit me!"); bing.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { callee(); } });An output like that one can be expected:
---------------------------------- tideengineimplementation.gui.TideInternalFrame.resetData(TideInternalFrame.java:3035) tideengineimplementation.gui.TideInternalFrame.refreshButton_actionPerformed(TideInternalFrame.java:3829) tideengineimplementation.gui.TideInternalFrame.access$8200(TideInternalFrame.java:140) tideengineimplementation.gui.TideInternalFrame$35.actionPerformed(TideInternalFrame.java:3002) javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272) java.awt.Component.processMouseEvent(Component.java:6289) javax.swing.JComponent.processMouseEvent(JComponent.java:3267) java.awt.Component.processEvent(Component.java:6054) java.awt.Container.processEvent(Container.java:2041) java.awt.Component.dispatchEventImpl(Component.java:4652) java.awt.Container.dispatchEventImpl(Container.java:2099) java.awt.Component.dispatchEvent(Component.java:4482) java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577) java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238) java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) java.awt.Container.dispatchEventImpl(Container.java:2085) java.awt.Window.dispatchEventImpl(Window.java:2478) java.awt.Component.dispatchEvent(Component.java:4482) java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644) java.awt.EventQueue.access$000(EventQueue.java:85) java.awt.EventQueue$1.run(EventQueue.java:603) java.awt.EventQueue$1.run(EventQueue.java:601) java.security.AccessController.doPrivileged(Native Method) java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98) java.awt.EventQueue$2.run(EventQueue.java:617) java.awt.EventQueue$2.run(EventQueue.java:615) java.security.AccessController.doPrivileged(Native Method) java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) java.awt.EventQueue.dispatchEvent(EventQueue.java:614) java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) java.awt.EventDispatchThread.run(EventDispatchThread.java:122) ----------------------------------Easy!
No comments:
Post a Comment