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

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

Java代码  

  1. package com.swing.table;  
  2.   
  3. import javax.swing.JTable;  
  4. import javax.swing.table.TableColumn;  
  5. import javax.swing.table.TableColumnModel;  
  6.   
  7. public class TableUtil3  
  8. {  
  9.       
  10.     private TableUtil3()  
  11.     {  
  12.         throw new Error("Don't let anyone instantiate this class.");  
  13.     }  
  14.       
  15.     /*** 
  16.      * hide specified column 
  17.      *  
  18.      * @param table 
  19.      * @param column 
  20.      */  
  21.     public static void hideTableColumn(JTable table, int column)  
  22.     {  
  23.         TableColumnModel columns = table.getColumnModel();  
  24.         TableColumn column_id_data = columns.getColumn(column);  
  25.         column_id_data.setMaxWidth(0);  
  26.         column_id_data.setPreferredWidth(0);  
  27.         column_id_data.setMinWidth(0);  
  28.           
  29.         TableColumn column_id_header = table.getTableHeader().getColumnModel()  
  30.                 .getColumn(column);  
  31.         column_id_header.setMaxWidth(0);  
  32.         column_id_header.setPreferredWidth(0);  
  33.         column_id_header.setMinWidth(0);  
  34.     }  
  35.     /*** 
  36.      * show specified column 
  37.      *  
  38.      * @param table 
  39.      * @param column 
  40.      * @param width 
  41.      */  
  42.     public static void showTableColumn(JTable table, int column)  
  43.     {  
  44.         int width=40;  
  45.         TableColumnModel columns = table.getColumnModel();  
  46.         TableColumn column_id_data = columns.getColumn(column);  
  47.           
  48.         column_id_data.setMaxWidth(width+100);  
  49.         column_id_data.setPreferredWidth(width);  
  50.         column_id_data.setMinWidth(width);  
  51.          
  52. //        column_id_data.setResizable(true);  
  53.         TableColumn column_id_header = table.getTableHeader().getColumnModel()  
  54.                 .getColumn(column);  
  55.         column_id_header.setMaxWidth(width+100);  
  56.         column_id_header.setPreferredWidth(width);  
  57.         column_id_header.setMinWidth(width);  
  58. //        column_id_header.setResizable(true);  
  59.     }  
  60. }  

调用上述工具类的代码如下: 

//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() {

@Override

public void actionPerformed(ActionEvent e) {

TableUtil3.hideTableColumn(table, 6);

}

});

button02Pane.add(hideIDBtn);

时间: 2025-01-21 06:20:10

JTable隐藏某列后如何再恢复显示?的相关文章

【POI】修改已存在的xls,新添一列后,再保存本文件

使用POI版本: ① ②   ③ ④         1 package com.poi.dealXlsx; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.FileOutputStream; 6 import java.io.IOException; 7 import java.util.ArrayList; 8 import java.util.List; 9 10 11 import o

在gridview通过CheckBox隐藏/显示 列后,表中刚刚填入的数据奇怪消失.

问题描述 大家好,在gridview通过CheckBox隐藏/显示列后,在表中其他列刚刚填入的数据奇怪消失.代码如下:protectedvoidCheckBox1_CheckedChanged(objectsender,EventArgse){GridView1.Columns[6].Visible=!GridView1.Columns[6].Visible;}请问为什么? 解决方案 解决方案二:可能是你的CheckedChanged事件是提交到服务器端的,导致了gridview需要重新绑定最好

请问各大神,如何将datagrid表格中的第一列数据逐行计算后,再将得出的结果依次放入第二列?

问题描述 请问各大神,如何将datagrid表格中的第一列数据逐行计算后,再将得出的结果依次放入第二列? Private Sub transform_Click() Dim Ni As Double Adodc1.Refresh Adodc1.Recordset.Update Ni = Adodc1.Recordset.RecordCount Adodc1.Recordset.MoveFirst For i = 1 To Ni B = latRT.Text L = longRT.Text Cal

c语言-俄罗斯方块C语言 12列改为10列后出错,新人求助!

问题描述 俄罗斯方块C语言 12列改为10列后出错,新人求助! #include #include #include #include #include #include #ifdef _MSC_VER // M$的编译器要给予特殊照顾 #if _MSC_VER <= 1200 // VC6及以下版本 #error 你是不是还在用VC6?! #else // VC6以上版本 #if _MSC_VER >= 1600 // 据说VC10及以上版本有stdint.h了 #include #else

硬盘分区误删后如何巧妙恢复

一)文件或文件夹的恢复 不向目标分区写入新文件,从概念上容易理解,但实际要做到却不是那么容易的.因为Windows会在各个分区多多少少生成一些临时文件,加上还有在启动时自动扫描分区的功能,如果设置不当或操作上稍不留意,可能已经写入了新文件而您还不知道. 1.注意Windows扫描和报告的设置 默认状态下,Windows会在启动的时候检测分区有没有错误,如果上次是非正常关机,您就会看到一个扫描的任务及进度条,这种扫描对解决交叉链接错误有用,但对于要恢复的文件可能会造成致命的破坏-因为扫描完毕后,W

Excel2010隐藏行和列单元格方法

  Excel有1048576行16384列,可有时我们做表只需要其中一点点,其他空的部分,虽然不会被打印出来,但摆在那里感觉上去很多余,能不能把多余删除掉?     真的去删除是不可能的,只能用隐藏行.列了,只不过选取的时候,总不能手工从第9行一直拉到第1048576行吧,所以这里需要用到一系列Excel快捷键:SHIFT+CTRL+方向键 在这个题目里,选第9行,再配合SHIFT+CTRL+下方向键,可以一直选到1048576行,然后再隐藏行;列也是同理了. 当然了,在名称框里定位也是个不坏

android-Android按home键退出程序后,再进入程序,还是退出时的页面,请问这是怎么做到的?

问题描述 Android按home键退出程序后,再进入程序,还是退出时的页面,请问这是怎么做到的? Android按home键退出程序后,再进入程序,还是退出时的页面.请问这是怎么做到的? 解决方案 Android生命周期 > 首先, 你要先了解下有关activity的生命周期方法的调用顺序,自己可以写一下demo,打一些log输出. 要尝试,你按下home后, 都执行了什么声明周期方法. 关于数据缓存 > 这里我没有写过相似的代码, 不过可以给你提些思路,相信,你也看到onCreate方法有

mysql 数据导出修改表结构后,再导入,新添加的字段插入默认值

问题描述 mysql 数据导出修改表结构后,再导入,新添加的字段插入默认值 要实现的例子: 表A (a0,a1) 拥有数据100条 现在要将表结构修改为,A(a0,a1,a2),但是不想重新输入数据 所以,想先从旧的表中到处数据,然后导入新表,字段a2取默认值或固定值 求解决方案!! 解决方案 在各位大神的提示下,经过测试,alter table A add a2 数据类型 default 值 可以更改表结构 因此呢,我打算先把原表更改结构,导出数据,然后再将原表恢复原样 这样很安全了,不会影响

按钮-easyui获取列后,怎样多选列进行统一处理?

问题描述 easyui获取列后,怎样多选列进行统一处理? 我获取了一个列表的数据后,想要多选中列,将这些列的属性统一进行处理 例如下图: 黄色的是我选中的,其属性中 火热 为 否 如何我在点击火热标识后,被选中的列中火热属性变为是. 按钮触发方法hot():ishot==0 则为否 ishot==1则为是. 解决方案 根据datagrid的方法getSelections,获取一个数组,你遍历这个数组,获取每一个的id,根据id更改后台火热属性的值,最后再刷新datagrid列表.就可以了.