jython error "Исключение в потоке"AWT-EventQueue-0""
Я пытался запустить скрипт Python с использованием Jython,
from javax.swing import JButton,JFrame
def action():
execfile(r"E:\stack.py")
frame = JFrame("window")
button = JButton("button", actionPerformed = action)
frame.add(button)
frame.show()
Но это показывает ошибку:
Exception in thread "AWT-EventQueue-0" TypeError: action() takes no arguments (1 given)
Здесь я не передаю никаких аргументов в действие!
куда я иду не так?
Спасибо
1 ответ
Нажатие кнопки всегда пропускает событие. Все, что вы устанавливаете в JButton.actionPerformed, должно обрабатывать это для правильной работы.
Попробуй это:
from javax.swing import JButton,JFrame
def action(event):
execfile(r"E:\stack.py")
frame = JFrame("window")
button = JButton("button", actionPerformed = action)
frame.add(button)
frame.show()
Это может быть весьма полезно, когда вы узнаете об этом. Предположим, у вас есть две кнопки, связанные с одним и тем же событием, и вам нужно знать, какая из них была нажата.
def show_which_button_was_pressed(event):
sender = event.getSource()
print sender.getText()
Кроме того, вам также не разрешено отправлять больше, чем событие, методу actionPerformed. Если вы хотите, вы можете посмотреть на обходной путь в этом вопросе.