0
我正在使用Jython,Swing和PyDev(Eclipse)。爲什麼PyDev中的Swing Event Dispatch Thread沒有斷點?
在EDT上運行的任何代碼(又名AWT事件隊列?)上都沒有觸發斷點。
這包括:從一個Swing事件(例如JButton的點擊)表示,通過裝飾,通過SwingUtilities.invokeLater()
運行
- 功能(參見
- 最後一個例子here。函數,註冊爲我正在使用的Java包(套接字類)的鉤子
要重現的Swing事件代碼:
from javax.swing import JFrame, JButton
def TestFunc(event):
#breakpoints in this function don't work
print "Hey"
if __name__ == '__main__':
mainWindow = JFrame('Test',
defaultCloseOperation = JFrame.EXIT_ON_CLOSE,
size = (1024, 600))
mainWindow.add(JButton("Hey", actionPerformed = TestFunc))
mainWindow.visible = True
的invokeLater()代碼重現:
from java.lang import Runnable
from javax.swing import SwingUtilities
import threading
class foo(Runnable):
def __init__(self, bar):
self.bar = bar
def run(self):
#breakpoints in this function don't work
print threading.currentThread()
print self.bar
if __name__ == '__main__':
myFoo = foo(5)
SwingUtilities.invokeLater(myFoo)
太棒了,這讓我的生活變得如此簡單!我看到你在2年前提出了這個問題:http://bugs.jython.org/issue1440好東西有一個解決方法! –