Swing之JTable的一些常见的方法用法分享,我们用代码来说话
今天足足一天都在了解JTable的用法
基本上把一些常用的方法给搞懂了
下面我们一一介绍,用代码来说话:
1:如何创建一个表格
创建一个表格至少需要四步
a、定义表格参数
b、将参数加入到表格模型
c、将表格模型加入到表格
d、将表格加入到滚动条组建(非必须)
e、将表格或滚动条加入到容器中
下面是代码实现
//创建一个表格 private JScrollPane creatTable(){ Object[][] params = {{"1",new String(),new Integer(0),"","","","","",""},{"2",new String(),new Integer(0),"","","","","",""},{"3",new String(),new Integer(0),"","","","","",""},{"4","","","","","","","",""},{"5","","","","","","","",""}}; String[] values = {"商品id","商品条码", "商品名称", "品种", "单位", "单价", "数量" , "状态","合计"}; DefaultTableModel model = new DefaultTableModel(params,values); //将数据加载到table this.table = new JTable(model); //设置表的大小 this.table.setPreferredScrollableViewportSize(new Dimension(820, 500)); //将表格加入到滚动筐组件 JScrollPane scrollPane = new JScrollPane(this.table); return scrollPane; }
上面的代码是我项目代码一部分,已精简后的代码
需要注意的是
表格模型的第一个参数是二维数组,每一维表示一行,第二个参数就是表头
2、如何禁止修改列
禁止修改列只需要重写isCellEditable方法即可
您可以在上面的代码中,修改表格模型即可
修改后的代码如下
DefaultTableModel model = new DefaultTableModel(params,values){ /** * 定义数据表格模型 */ private static final long serialVersionUID = 1L; //isCellEditable重写这个方法,此列不可修改 public boolean isCellEditable(int rowindex,int columnindex){ if(columnindex == 3) { return false; } return true; } };以上代码表示第三列不可写,注意这里的3,表示第四列,就是列的第一位是0,我们只需要重写这个方法即可
3、如何隐藏列
有时候我们需要对一些列隐藏,比如用户id,商品id等信息
隐藏列的原理就是将单元列的最大宽和最小宽设置为0即可
如以下代码所示
//隐藏列 private void hidenColumn(int Column){ TableColumn column = table.getTableHeader().getColumnModel().getColumn(Column); column.setMaxWidth(Column); column.setPreferredWidth(Column); column.setWidth(Column); //设置宽,通常我们只用上面setPreferredWidth设置 column.setMinWidth(Column); table.getTableHeader().getColumnModel().getColumn(Column).setMaxWidth(0); table.getTableHeader().getColumnModel().getColumn(Column).setMinWidth(0); }以上代码表示将Column行的文本区的单元格和表头的单元格都设置为了0
这样就达到了隐藏的效果了
4、如何获得选中的行
int[] row = this.table.getSelectedRows();这里是获得选中的多行
方法如果是getSelectedRow()
getSelectedRow()那获得就是一行,这一行一般都是最上面的那一行
5、如何获得单元格的内容
代码如下
table.getValueAt(row[0], 2)表示获取选中的第一行第三列的值
6、如何获得当前单元格所在列,对应的表头参数
table.getTableHeader().getColumnModel().getColumn(2).getHeaderValue()此代码表示了获取第三列的表头信息
7、如何获得当前选中单元格所在列的下标
列是可以拖动的,当然也可以设置不允许拖动
如果能拖动,拖动后我们如何获得单元格所在列的下标呢,请看下面的代码实现
table.getTableHeader().getColumnModel().getColumn(2).getModelIndex()此代码表示获得第三列的下标,不管第三列最终是那一列,获取到的是最终你拖动的那一列的下标
比如以下代码获得的就是第三列的表头信息,下标信息,以及单元格内容(注意本例是隐藏了第一列)
[caption id="attachment_1415" align="alignnone" width="375"]
JTable操作[/caption]
以上两张图片展示了,
8、如何在JTable中创建鼠标右键菜单
您可以直接打开以下连接查看
爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情