4

我已经搜索了很长时间,但在任何地方都没有找到明确的例子。我是使用 NetBeans 的 Java 新手。我在 JTable 的第一列中有一个布尔值(称为“启用”),并且我需要调用一些插件代码来查看它是否具有启用所需的设置,如果没有,则显示消息框并防止选中已启用。

我真正需要的是在选中复选框时调用一个函数,我可以从那里获取它。有没有人有如何做到这一点的例子?

谢谢你的帮助!

哈利

4

2 回答 2

2

您可能需要一个TableModelListener,如侦听数据更改中所述。或者,您可以使用自定义编辑器,如概念:编辑器和渲染器以及以下部分中所述。

于 2010-09-09T14:53:59.037 回答
1

我真正需要的是在选中复选框时调用一个函数

当复选框被选中时,模型中的值将被更改,这可能不是您想要的。我认为您首先要阻止检查复选框。

防止单元格可编辑的方法是覆盖 JTable 的 isCellEditable(...) 方法。通过覆盖此方法,您可以动态确定单元格是否应可编辑。

JTable table = new JTable( ... )
{
    public boolean isCellEditable(int row, int column)
    {
        int modelColumn = convertColumnIndexToModel( column );

        if (modelColumn == yourBooleanColumn)
            return isTheBooleanForThisRowEditable(row);
        else
            return super.isCellEditable(row, column);
    }
};

一种更好的方法是创建一个自定义渲染器,这样即使在用户尝试单击单元格之前,复选框也看起来“已禁用”。请参阅trashgod 在渲染器上提供的链接。

于 2010-09-09T15:33:26.883 回答