您回答的关于在JTable中增加复选框的问题,在自定义的类MyTable中有三个方法我看不明白。
publicStringgetColumnName(intcolumn)publicClassgetColumnClass(intcolumnIndex)publicbo...
public String getColumnName(int column)
public Class getColumnClass(int columnIndex)
public boolean isCellEditable(int rowIndex, int columnIndex)
以上者三个方法没有被显式调用,我测试过了,任何一个都是不可或缺的。请问您知道其中的原理吗?谢谢! 展开
public Class getColumnClass(int columnIndex)
public boolean isCellEditable(int rowIndex, int columnIndex)
以上者三个方法没有被显式调用,我测试过了,任何一个都是不可或缺的。请问您知道其中的原理吗?谢谢! 展开
1个回答
展开全部
自定义的类是实现TableModel接口的,这三个方法是TableModel接口定义的,它们没有在你的代码中显示调用,却在JTable的功能执行中被调用
根据隐约的记忆,JTable对由TableModel返回的ColumnClass有一些特殊处理,比如boolean值的话就是以CheckBox的形式来展示,但是TableModel必须明确告诉JTable某一列是Boolean.class才能达到这个效果
如果只是为了增加复选框,我认为getColumnClass的重载就够了。如果你的代码是直接实现TableModel接口,自然你需要实现全部方法
具体的解释可以参考core java 第二卷关于高级swing的介绍
根据隐约的记忆,JTable对由TableModel返回的ColumnClass有一些特殊处理,比如boolean值的话就是以CheckBox的形式来展示,但是TableModel必须明确告诉JTable某一列是Boolean.class才能达到这个效果
如果只是为了增加复选框,我认为getColumnClass的重载就够了。如果你的代码是直接实现TableModel接口,自然你需要实现全部方法
具体的解释可以参考core java 第二卷关于高级swing的介绍
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询