[英]How to hide the Jtable column data?
我想隐藏Jtable列的数据,但不隐藏列视图,仅隐藏其数据。 该列包含有关利润的数据,客户不希望显示利润,但是在我的代码中,我使用此列的值并在用户选择指定的行时获取它。
如何在隐藏数据后选择该列时如何满足客户需求,并且仍然能够获得该列的值(将列显示为空但仍具有其值)?
您需要从JTable
的TableColumnModel
中删除TableColumn
。 例如:
table.removeColumn( table.getColumn(...) );
现在,该列将不会显示在表中,但是TableModel
仍然可以使用数据。 访问您使用的数据:
table.getModel().getValueAt(...);
您可以尝试子类化DefaultTableCellRenderer
,然后调用setCellRenderer
。 当相关的列号传递给getTableCellRendererComponent
,返回一个空白的JLabel
,否则调用默认的super.getTableCellRendererComponent
。
这应该意味着该列仍然可见,但是每个单元格将为空白。
如果要在选择一行时显示数据,则需要向选择模型添加一个侦听器(来自getSelectionModel
),以将所选行存储在变量中,并调用重绘。 然后,您可以在CellRenderer
使用此值。
您为什么不让dataModel控制显示的内容? 我假设您正在使用tableModel。
您要做的就是更改getValueAt(..)方法,以便它不为您不想显示的列返回值。 确保getColumnCount()方法也减少了一个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.