Я разрабатываю простое окно, которое выполняет некоторые операции при закрытии.Это мой фрагмент кода:
from javax.swing import *
from java.awt import *
from java.awt.event import *
from java.io import *
import javax.swing.table.DefaultTableModel as DefaultTableModel
class registro(JFrame):
def __init__(self):
super(registro, self).__init__()
self.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
self.setExtendedState(JFrame.MAXIMIZED_BOTH)
#[...]
headers = ('Data e orario',
'Personale UO Q&A',
'Tipologia di attività'.decode('utf-8'),
'Personale incontrato con strutture di appartenenza',
'Note')
self.model = DefaultTableModel([["","","","",""]], headers)
self.table = JTable(self.model)
#[...]
self.addWindowListener(self.onClose())
#[...]
def onClose(self):
class saver(WindowAdapter):
tableModel = self.model
def windowClosing(self, event):
print tableModel #HERE IS THE ERROR!!!!!!!!!
return saver()
Ошибка, выделенная в выделенной строке, следующая:
NameError: глобальное имя 'tableModel' не определено
Хотя я объявил переменную внутри слушателя (чтобы избежать недопонимания между двумя self ), я не понимаю, почему она никогда не распознавалась.Я почти новичок с объектно-ориентированным программированием и окнами Swing на Jython, и я надеюсь, что это не мой (очень) серьезный недостаток!
Большое спасибо заранее.