天天看点

JTable隐藏某列后如何再恢复显示?

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

JTable隐藏某列后如何再恢复显示?

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);