我有一个图像列。我想附加一些只能读取但不能显示的附加文本信息。
我怎样才能做到这一点?我正在寻找一些“幽灵”专栏。
寻找一些方法来存储临时存储在客户端Java应用程序上的持久数据,然后将其上传到服务器。
答案 0 :(得分:3)
现在,当您想要引用隐藏列中的数据时,您需要从TableModel获取数据,而不是JTable:
Object cellData = table.getModel().getValueAt(...);
答案 1 :(得分:2)
看看您的TableModel
看起来会很有帮助,因为我们可以为您提供对您当前设计提供最小改动的想法。但是,一种解决方案是设计一个表示表中一行的自定义数据对象,并让TableModel
使用它来为每列提供正确的数据,包括您当前显示的图像。
编辑:
基本上我有一个列表,DefaultTableModel设置为2列。我想只显示模型的第一列。
我建议您通过扩展TableModel
来创建自己的AbstractTableModel
。为此,您只需要实现三种方法:
public int getRowCount();
public int getColumnCount();
public Object getValueAt(int row, int column);
然后,您可以提供类似List
的支持集合来保存行数据。您的getRowCount()
可以返回列表的大小,getColumnCount()
可以为您的图片列返回1
。然后getValueAt()
将从我上面提到的自定义数据对象返回图片。
答案 2 :(得分:0)
您需要扩展AbstractTableModel或DefaultTableModel类并覆盖getValueAt(row,column)和setValueAt方法。
答案 3 :(得分:0)
您使用的是自定义TableModel吗?您可以像这样覆盖getColumnCount()
:
@Override
public int getColumnCount() {
return super.getColumnCount() - 1;
}
这样您的模型会隐藏最后一列,但您仍然可以使用getValueAt()