繁体   English   中英

选中JTable中的复选框时的通知

[英]Notification when a checkbox in a JTable is checked

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

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

谢谢你的帮助!

掠夺

您可能需要TableModelListener ,如Listening for Data Changes中所述 或者,您可以使用自定义编辑器 ,如概念:编辑器和渲染器以及以下部分中所述。

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

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

阻止单元格可编辑的方法是覆盖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);
    }
};

更高级的方法是创建自定义渲染器,以便在用户尝试单击单元格之前,复选框看起来“已禁用”。 请参阅rendergre上提供的trashgod提供的链接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM