【发布时间】:2019-03-11 10:20:34
【问题描述】:
我正在开发一个在关闭时执行一些操作的简单窗口。这是我的代码摘录:
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之间的误解),但我不明白为什么它从来没有被识别。我几乎是 Jython 上面向对象编程和 Swing 窗口的新手,我希望这不是我的(非常)严重的缺点!
非常感谢。
【问题讨论】:
标签: swing awt jython jython-2.7