创建table,调用无参的构造函数:
结果:
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
TableColumn column
= table.getColumnModel().getColumn(0);//取第一列
为table添加监听:
JTable table= new JTable();
以表头和数据创建表格
//这要求表头和数据都不能为空,不然会抛出NullPointerException,即不能通过这个方法创建出一个只有表头的表格
Object[][] cellData =
{
{"row1-col1",
"row1-col2"},
{"row2-col1",
"row2-col2"}};
String[] columnNames =
{"col1",
"col2"};
JTable table = new JTable(cellData, columnNames);
{
{"row1-col1",
"row1-col2"},
{"row2-col1",
"row2-col2"}};String[] columnNames =
{"col1",
"col2"};JTable table = new JTable(cellData, columnNames);
为空表格添加列
//这种方法能创建只有表头的表格
//这是实际应用中的一个例子
JTable table=new JTable();
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
//因为只有DefaultTableModel有addColumn的功能,而table.getModel()返回的是一个TableModel类型的对象
//查看API,DefaultTableModel实现了TableModel的接口,为了调用DefaultTableModel的方法,必须强制类型转换
tableModel.addColumn("autoclass1");
tableModel.addColumn("autoclass2");
tableModel.addColumn("diff");
tableModel.addColumn("content");
结果:
为表格添加行(数据):
Object[] o={"1","2","3","4"};
tableModel.addRow(o);
获取第n+1行第m+1列的数据
//n,m都是从0开始
String cellData=(String) tableModel.getValueAt(0,0);
//cellData是第一行第一列的数据值
//getValueAT(a,b)返回的是Object类型的对象
设置第n+1行第m+1列的数据
tableModel.setValueAt("afaf", 0, 0);
统计列数和行数:
tableModel.getRowCount()
tableModel.getColumnCount()
//返回的是int类型的值
设置列宽,行高:
TableColumn column
= table.getColumnModel().getColumn(0);//取第一列 column.setPreferredWidth(30);
column.setMaxWidth(30);
column.setMinWidth(30);
column.setMaxWidth(30);
column.setMinWidth(30); table.setRowHeight(20);
删除列,删除行
table.removeColumn(table.getColumnModel().getColumn(1));
//删除第二列的数据
DefaultTableModel tableModel
= (DefaultTableModel) table.getModel();
tableModel.removeRow(0);
//删除第一行的数据
清空表的所有行,只保留表头:
//table和tableModel都没有clear()的方法
tableModel.setRowCount(0);
如果连表头也不要了:
tableModel.setColumnCount(0);
JTable的监听:
有很多,先只讲一个我常用到的:
ListSelecitonListener,监听选定特定行,响应相应的事件
例:获取选定行的第4列的值,并把它显示在一个JTextArea里
写一个内部类实现ListSelectionListener接口
ListSelectionModel selectionMode=table.getSelectionModel();
selectionMode.addListSelectionListener(new RowSelectionListener());
效果图:
本文详细介绍了如何使用Java的JTable组件创建、填充、修改、监听表格,并展示了如何添加列、行,获取和设置数据,以及统计表格的行数和列数,最后演示了表格监听的应用。
81

被折叠的 条评论
为什么被折叠?



