from javax.swing import JTextPane, JFrame from java.awt.event import KeyEvent from java.lang import System import threading import sys def keyPressed(event): print >> sys.stderr, 'keyPressed' text_pane = JTextPane(keyPressed=keyPressed) frame = JFrame() frame.getContentPane().add(text_pane) frame.setBounds(50, 50, 500, 500) frame.visible = True def trace_dispatch(frame, event, arg): if frame.f_code.co_name == 'keyPressed': #This code is never called when entering text at Jython 2.5, but it works in Jython 2.2.1 print 'trace_dispatch at: %s' % (frame.f_code.co_name,) key = KeyEvent(text_pane, KeyEvent.KEY_PRESSED, System.currentTimeMillis(), 0, KeyEvent.VK_0, '0') if hasattr(threading, 'settrace'): #Jython 2.2.1 does not have it. threading.settrace(trace_dispatch) #sys.settrace(trace_dispatch)