隐藏JTable中的列

Ade*_*ngh 8 java swing jtable jscrollpane

可能重复:
如何在JTable中创建一个不可见的Swing Java
列如何隐藏DefaultTableModel中的一个特殊列,使其不在表中显示?

我试图在JTable中输入数据到三列,但我想只显示两列.实际上,我想隐藏第三列,而不是通过将宽度设置为0,而是通过任何其他方法可以在click事件中从隐藏列获取数据.

如何以这种方式隐藏列?

我使用以下代码:

 try {
     String Title[]= new String{"a","b","c"};
     Object obj= new Object[50][3];
     JTable table= new JTable(obj,title);
     JScrollPane jsp= new JScrollPane(table); 
     add(jsp);
 } catch(Exception ex) {
     ex.printStackTrace();
 }
Run Code Online (Sandbox Code Playgroud)

Ama*_*ath 24

将Column Minimum和Maximum width设置为零.

table.getColumnModel().getColumn(columnIndex).setMinWidth(0);
table.getColumnModel().getColumn(columnIndex).setMaxWidth(0);
Run Code Online (Sandbox Code Playgroud)

正如Andrew Thomson在评论部分中建议的链接,您也可以使用removeColumn.

来自javaDoc;

removeColumn

public void removeColumn(TableColumn aColumn) 
Run Code Online (Sandbox Code Playgroud)

从此JTable的列数组中删除aColumn.注意:此方法不会从模型中删除数据列; 它只是删除了负责显示它的TableColumn.参数:aColumn - 要删除的TableColumn

PS:但我亲自使用第一种方法隐藏了一个列JTable.谢谢你的removeColumn方法我会尝试从现在开始使用它.