我想隐藏Jtable列的数据,但不隐藏列视图,只隐藏其数据。 该列包含有关利润的数据,客户并不想显示利润,但在我的代码中,我使用此列的值并在用户选择指定行时获取它。
如何在隐藏其数据(将列显示为空但仍具有其值)后选择此列时,如何实现客户需求并仍然能够获取此列的值?
答案 0 :(得分:1)
您需要从TableColumn
的{{1}}中移除TableColumnModel
。例如:
JTable
现在该列不会显示在表格中,但数据仍可在table.removeColumn( table.getColumn(...) );
中使用。访问您使用的数据:
TableModel
答案 1 :(得分:0)
您可以尝试子类化DefaultTableCellRenderer
,然后调用setCellRenderer
。将相关列号传递给getTableCellRendererComponent
后,返回空白JLabel
,否则请调用默认super.getTableCellRendererComponent
。
这应该意味着列仍然可见,但每个单元格都是空白的。
如果要在选择行时显示数据,则需要向选择模型添加一个侦听器(从getSelectionModel
)以将所选行存储在变量中,然后调用重绘。然后,您可以在CellRenderer
。
答案 2 :(得分:-2)
为什么不让 dataModel 控制显示的内容?我假设您正在使用tableModel。
您所要做的就是更改 getValueAt(..)方法,以便它不会返回您不想显示的列的值。确保 getColumnCount()方法也减少一个。