Я реализую приложение с графическим интерфейсом на Jython, используя Eclipse и плагин PyDev.
Проблема в том, что мне трудно использовать встроенный отладчик. Когда я начинаю сеанс отладки, он просто останавливается. Конечно, этого следует ожидать, так как программа просто создает JFrame, а затем она заканчивается.
Так что любые контрольные точки, которые я ставлю для разных событий, например. нажатие кнопки никогда не произойдет, поскольку сеанс отладки уже завершен.
Что мне делать? Я устал от использования отпечатков для всей моей отладки.
Например, когда я попытался отладить этот небольшой пример Java. У меня нет проблем, чтобы ударить
точка останова, которую я установил в windowClosing-методе
import java.awt.event.*;
import javax.swing.*;
public class Test1 {
public static void main(String s[]) {
JFrame frame = new JFrame("JFrame Source Demo");
// Add a window listner for close button
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
frame.setVisible(true);
}
}
А потом я попробовал этот более или менее похожий пример в jython
from javax.swing import JFrame;
import java.awt.event.WindowListener as WindowListener
class Test1 (JFrame, WindowListener):
def __init__(self):
super(JFrame, self).__init__('Some name goes here', defaultCloseOperation = JFrame.EXIT_ON_CLOSE, size = (800, 800))
self.addWindowListener(self)
self.setVisible(True)
def windowClosing(self, windowEvent):
print 'window closing'
pass # want to hit this breakpoint
someFrame = Test1()
pass #breakpoint here maybe
Если я попытался запустить пример jython в отладчике, и он просто завершился. Хорошо, тогда я добавил точку останова после того, как создал someFrame и точку останова в методе windowClosing. Все еще не повезло, это не ударил, когда я закрываю окно, но я вижу его выполненным, как я вижу распечатку.
Может кто-нибудь сказать мне, что я делаю не так? Я уверен, что забыл что-то очень простое.