我已经搜索了很长一段时间,并没有在任何地方找到一个明确的例子。我是使用NetBeans的Java新手。我在JTable的第一列(称为“Enabled”)中有一个布尔值,我需要调用一些插件代码,看看它是否具有启用所需的设置,如果没有,则显示一个消息框并阻止检查已启用。
我真正需要的是在选中复选框时调用函数,我可以从那里获取它。有没有人有如何做到这一点的例子?
感谢您的帮助!
哈利
答案 0 :(得分:2)
您可能需要TableModelListener
,如Listening for Data Changes中所述。或者,您可以使用custom editor,如Concepts: Editors and Renderers和以下部分所述。
答案 1 :(得分: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);
}
};
更高级的方法是创建自定义渲染器,以便在用户尝试单击单元格之前,复选框看起来“已禁用”。请参阅rendergre上提供的trashgod提供的链接。