1、JTable 是 Swing 编程中很常用的控件,这里总结了一些常用方法以备查阅.欢迎补充,转载请注明作者与出处.一.创建表格控件的各种方式:1) 调用无参构造函数 .JTable table = new JTable();2) 以表头和表数据创建表格 .Object cellData = “row1-col1“, “row1-col2“,“row2-col1“, “row2-col2“;String columnNames = “col1“, “col2“;JTable table = new JTable(cellData, columnNames);3) 以表头和表数据创建表格 ,并且让
2、表单元格不可改 .String headers = “表头一“, “表头二“, “表头三“ ;Object cellData = null;DefaultTableModel model = new DefaultTableModel(cellData, headers) public boolean isCellEditable(int row, int column) return false;table = new JTable(model);二.对表格列的控制1) 设置列不可随容器组件大小变化自动调整宽度 .table.setAutoResizeMode(JTable.AUTO_RES
3、IZE_OFF);2) 限制某列的宽度 .TableColumn firsetColumn = table.getColumnModel().getColumn(0);firsetColumn.setPreferredWidth(30);firsetColumn.setMaxWidth(30);firsetColumn.setMinWidth(30);3) 设置当前列数 .DefaultTableModel tableModel = (DefaultTableModel) table.getModel();int count=5;tableModel.setColumnCount(count)
4、;4) 取得表格列数int cols = table.getColumnCount();5) 添加列DefaultTableModel tableModel = (DefaultTableModel) table.getModel();tableModel.addColumn(“新列名“);6) 删除列table.removeColumn(table.getColumnModel().getColumn(columnIndex);/ columnIndex是要删除的列序号三.对表格行的控制1) 设置行高table.setRowHeight(20);2) 设置当前航数DefaultTableMo
5、del tableModel = (DefaultTableModel) table.getModel();int n=5;tableModel.setRowCount(n);3) 取得表格行数int rows = table.getRowCount();4) 添加表格行DefaultTableModel tableModel = (DefaultTableModel) table.getModel();tableModel.addRow(new Object“sitinspring“, “35“, “Boss“);5) 删除表格行DefaultTableModel tableModel =
6、(DefaultTableModel) table.getModel();model.removeRow(rowIndex);/ rowIndex 是要删除的行序号四.存取表格单元格的数据1) 取单元格数据DefaultTableModel tableModel = (DefaultTableModel) table.getModel();String cellValue=(String) tableModel.getValueAt(row, column);/ 取单元格数据,row是行号,column 是列号2) 填充数据到表格 .注:数据是 Member 类型的链表,Member 类如下:
7、public class Member/ 名称private String name;/ 年龄private String age;/ 职务private String title;填充数据的代码 :public void fillTable(List members)DefaultTableModel tableModel = (DefaultTableModel) table.getModel();tableModel.setRowCount(0);/ 清除原有行/ 填充数据for(Member member:members)String arr=new String3;arr0=memb
8、er.getName();arr1=member.getAge();arr2=member.getTitle();/ 添加数据到表格tableModel.addRow(arr);/ 更新表格table.invalidate();2) 取得表格中的数据public List getShowMembers()List members=new ArrayList();DefaultTableModel tableModel = (DefaultTableModel) table.getModel();int rowCount=tableModel.getRowCount();for(int i=0;
9、i1)int selRowIndexs=table.getSelectedRows();/ 用户所选行的序列for(int i=0;iselRowIndexs.length;i+)/ 用 tableModel.getValueAt(row, column)取单元格数据String cellValue=(String) tableModel.getValueAt(i, 1);六.添加表格的事件处理view.getTable().addMouseListener(new MouseListener() public void mousePressed(MouseEvent e) / 鼠标按下时的处理public void mouseReleased(MouseEvent e) / 鼠标松开时的处理public void mouseEntered(MouseEvent e) / 鼠标进入表格时的处理public void mouseExited(MouseEvent e) / 鼠标退出表格时的处理public void mouseClicked(MouseEvent e) / 鼠标点击时的处理);