如何隐藏Jtable列数据?

时间:2014-09-22 13:33:27

标签: java swing jtable

我想隐藏Jtable列的数据,但不隐藏列视图,只隐藏其数据。 该列包含有关利润的数据,客户并不想显示利润,但在我的代码中,我使用此列的值并在用户选择指定行时获取它。

如何在隐藏其数据(将列显示为空但仍具有其值)后选择此列时,如何实现客户需求并仍然能够获取此列的值?

3 个答案:

答案 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()方法也减少一个。