下面是我总结的一个操作表格列隐藏和显示的工具类:

package com.swing.table;
import javax.swing.jtable;
import javax.swing.table.tablecolumn;
import javax.swing.table.tablecolumnmodel;
public class tableutil3
{
private tableutil3()
{
throw new error("don't let anyone instantiate this class.");
}
/***
* hide specified column
*
* @param table
* @param column
*/
public static void hidetablecolumn(jtable table, int column)
tablecolumnmodel columns = table.getcolumnmodel();
tablecolumn column_id_data = columns.getcolumn(column);
column_id_data.setmaxwidth(0);
column_id_data.setpreferredwidth(0);
column_id_data.setminwidth(0);
tablecolumn column_id_header = table.gettableheader().getcolumnmodel()
.getcolumn(column);
column_id_header.setmaxwidth(0);
column_id_header.setpreferredwidth(0);
column_id_header.setminwidth(0);
* show specified column
* @param width
public static void showtablecolumn(jtable table, int column)
int width=40;
column_id_data.setmaxwidth(width+100);
column_id_data.setpreferredwidth(width);
column_id_data.setminwidth(width);
// column_id_data.setresizable(true);
column_id_header.setmaxwidth(width+100);
column_id_header.setpreferredwidth(width);
column_id_header.setminwidth(width);
// column_id_header.setresizable(true);
}
调用上述工具类的代码如下:
//show id column
jbutton showidbtn = new jbutton("show id");
showidbtn.addactionlistener(new actionlistener() {
@override
public void actionperformed(actionevent e) {
tableutil3.showtablecolumn(table, 6);
}
});
button02pane.add(showidbtn);
//hide id column
jbutton hideidbtn = new jbutton("hide id");
hideidbtn.addactionlistener(new actionlistener() {
tableutil3.hidetablecolumn(table, 6);
button02pane.add(hideidbtn);