JTables与Jython事件
我刚开始学习在Jython中使用Swing,感觉有点困难,想请教一下如何在Jython中给JTable添加动作监听器。
我知道在按钮上可以这样做:
button = Jbutton( " Press me! ", actionPerformed = my.function )
而且我知道JTable有很多不同的事件,比如选中某个项目时、表格内焦点变化时、或者表格本身获得焦点时……
我的问题是,我不知道如何把这些事件应用到创建表格的语法中。我创建表格的代码大概是这样的:
data = DefaultTableModel( items, columnNames )
mytable = JTable( data )
我基本的想法是,我需要做一些类似于……
mytable = JTable ( data, isFocused = my.other.function )
但我不太清楚具体的语法,而且JTable的文档看起来复杂得很(还有很多其他接口和类),更别提在Jython的环境下去理解它们了。
额外问题:
除了这个具体的例子,还有没有什么很好的资源可以学习Jython中Swing的语法?我找到了一些资料,但大多数似乎都很少更新,后来就被遗弃了。(在文档方面)
1 个回答
2
所有可能的操作列表可以在这个Java Swing教程页面找到。这个页面的第三列列出了所有的监听器方法。并不是所有的方法都适用于每一个Swing对象,但如果适用,你可以像使用JButton
的例子那样,给它添加一个监听器。
你特别想知道的是如何检测到表格获得了焦点。这就是focusGained
事件,具体内容可以在FocusListener
文档中找到,这个文档就在我提到的第一个页面旁边。
这是你修改后的示例,可以正常工作:
data = DefaultTableModel(items, columnNames)
mytable = JTable(data, focusGained=my.other.function)
我很遗憾找不到关于Jython Swing的好描述。你最好的选择可能是从Swing教程中改编一些例子。我一直觉得Sun的文档非常出色。(我知道,现在是Oracle了...)
如果有什么不清楚的地方,请告诉我。