在 Jython 中控制 JTable 的编辑属性

问题描述 投票:0回答:1

如何在 Jython 中将 JTable 的某些列设置为可编辑/不可编辑?

我的桌子:

self.table_data = []
data_model = DefaultTableModel(self.table_data, self.colnames)
self.table = JTable(data_model)

self.table_pane = JScrollPane()
self.table_pane.setPreferredSize(Dimension(480,370))
self.table_pane.getViewport().setView(self.table)
swing jython
1个回答
0
投票

您可以通过扩展 DefaultTableModel 类的 isCellEditable 方法,使用 Jython 来完成此操作:

from javax.swing.table import DefaultTableModel
class CustomTableModel(DefaultTableModel):
    def isCellEditable(self, row, column):
        # Make column with index 1 (first column) uneditable
        if column == 1:
            return False
        return True
data_model = CustomTableModel(self.table_data, self.colnames)
self.table.setModel(data_model)

在此示例中,除第 1 列之外的所有列都可以编辑,当然,可以针对任何特定单元格或列细化 isCellEdited 逻辑。只需使用

if
elif
语句来设置条件,如果单元格可编辑,则返回
True
;如果单元格不可编辑,则返回
False
。最后,如果不满足任何条件,则设置默认返回
True
False

© www.soinside.com 2019 - 2024. All rights reserved.