JTable常见用法细则

JTable是Swing编程中很常用的控件,这里总结了一些常用方法以备查阅.欢迎补充,转载请注明作者与出处.

一.创建表格控件的各种方式:
1)  调用无参构造函数.

JTable常见用法细则JTable table = new JTable();


2)  以表头和表数据创建表格.

JTable常见用法细则Object[][] cellData =  {{"row1-col1", "row1-col2"},{"row2-col1", "row2-col2"}};
JTable常见用法细则String[] columnNames = {"col1", "col2"};
JTable常见用法细则    
JTable常见用法细则JTable table = new JTable(cellData, columnNames);


3)  以表头和表数据创建表格,并且让表单元格不可改.

JTable常见用法细则String[] headers =  { "表头一", "表头二", "表头三" };
JTable常见用法细则Object[][] cellData = null;
JTable常见用法细则
JTable常见用法细则DefaultTableModel model = new DefaultTableModel(cellData, headers) {
JTable常见用法细则
JTable常见用法细则  public boolean isCellEditable(int row, int column) {
JTable常见用法细则    return false;
JTable常见用法细则  }
JTable常见用法细则};
JTable常见用法细则
JTable常见用法细则table = new JTable(model);


二.对表格列的控制
1) 设置列不可随容器组件大小变化自动调整宽度.

JTable常见用法细则table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);


2) 限制某列的宽度.

JTable常见用法细则TableColumn firsetColumn = table.getColumnModel().getColumn(0);
JTable常见用法细则firsetColumn.setPreferredWidth(30);
JTable常见用法细则firsetColumn.setMaxWidth(30);
JTable常见用法细则firsetColumn.setMinWidth(30);


3) 设置当前列数.

JTable常见用法细则DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
JTable常见用法细则int count=5;
JTable常见用法细则tableModel.setColumnCount(count);


4) 取得表格列数

JTable常见用法细则int cols = table.getColumnCount();


5) 添加列

JTable常见用法细则DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
JTable常见用法细则tableModel.addColumn("新列名");


6) 删除列

JTable常见用法细则table.removeColumn(table.getColumnModel().getColumn(columnIndex));// columnIndex是要删除的列序号


三.对表格行的控制
1) 设置行高

JTable常见用法细则table.setRowHeight(20);


2) 设置当前航数

JTable常见用法细则DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
JTable常见用法细则int n=5;
JTable常见用法细则tableModel.setRowCount(n);


3) 取得表格行数

JTable常见用法细则int rows = table.getRowCount();
JTable常见用法细则


4) 添加表格行

JTable常见用法细则DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
JTable常见用法细则tableModel.addRow(new Object[] {"sitinspring", "35", "Boss"});


5) 删除表格行

JTable常见用法细则DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
JTable常见用法细则model.removeRow(rowIndex);// rowIndex是要删除的行序号


四.存取表格单元格的数据
1) 取单元格数据

JTable常见用法细则DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
JTable常见用法细则String cellValue=(String) tableModel.getValueAt(row, column);// 取单元格数据,row是行号,column是列号


2) 填充数据到表格.
注:数据是Member类型的链表,Member类如下:

JTable常见用法细则public class Member {
JTable常见用法细则    // 名称
JTable常见用法细则    private String name;
JTable常见用法细则    
JTable常见用法细则    // 年龄
JTable常见用法细则    private String age;
JTable常见用法细则    
JTable常见用法细则    // 职务
JTable常见用法细则    private String title;
JTable常见用法细则}


填充数据的代码:

JTable常见用法细则public void fillTable(List<Member> members) {
JTable常见用法细则  DefaultTableModel tableModel = (DefaultTableModel) table
JTable常见用法细则  .getModel();
JTable常见用法细则  tableModel.setRowCount(0);// 清除原有行
JTable常见用法细则  
JTable常见用法细则  // 填充数据
JTable常见用法细则  for(Member member:members){
JTable常见用法细则    String[] arr=new String[3];
JTable常见用法细则    arr[0]=member.getName();
JTable常见用法细则    arr[1]=member.getAge();
JTable常见用法细则    arr[2]=member.getTitle();
JTable常见用法细则    
JTable常见用法细则    // 添加数据到表格
JTable常见用法细则    tableModel.addRow(arr);
JTable常见用法细则  }
JTable常见用法细则  
JTable常见用法细则  // 更新表格
JTable常见用法细则  table.invalidate();
JTable常见用法细则}


2) 取得表格中的数据

JTable常见用法细则public List<Member> getShowMembers() {
JTable常见用法细则  List<Member> members=new ArrayList<Member>();
JTable常见用法细则  
JTable常见用法细则  DefaultTableModel tableModel = (DefaultTableModel) table
JTable常见用法细则  .getModel();
JTable常见用法细则  
JTable常见用法细则  int rowCount=tableModel.getRowCount();
JTable常见用法细则  
JTable常见用法细则  for(int i=0;i<rowCount;i++){
JTable常见用法细则    Member member=new Member();
JTable常见用法细则    
JTable常见用法细则    member.setName((String)tableModel.getValueAt(i, 0));// 取得第i行第一列的数据
JTable常见用法细则    member.setAge((String)tableModel.getValueAt(i, 1));// 取得第i行第二列的数据
JTable常见用法细则    member.setTitle((String)tableModel.getValueAt(i, 2));// 取得第i行第三列的数据
JTable常见用法细则    
JTable常见用法细则    members.add(member);
JTable常见用法细则  }
JTable常见用法细则  
JTable常见用法细则  return members;
JTable常见用法细则}


五.取得用户所选的行
1) 取得用户所选的单行

JTable常见用法细则int selectRows=table.getSelectedRows().length;// 取得用户所选行的行数
JTable常见用法细则DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
JTable常见用法细则
JTable常见用法细则if(selectRows==1) {
JTable常见用法细则  int selectedRowIndex = table.getSelectedRow(); // 取得用户所选单行  
JTable常见用法细则  
JTable常见用法细则  JTable常见用法细则.// 进行相关处理
JTable常见用法细则}


2) 取得用户所选的多行

JTable常见用法细则int selectRows=table.getSelectedRows().length;// 取得用户所选行的行数
JTable常见用法细则DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
JTable常见用法细则
JTable常见用法细则if(selectRows>1)
JTable常见用法细则  int[] selRowIndexs=table.getSelectedRows();// 用户所选行的序列
JTable常见用法细则  
JTable常见用法细则  for(int i=0;i<selRowIndexs.length;i++) {
JTable常见用法细则    // 用tableModel.getValueAt(row, column)取单元格数据
JTable常见用法细则    String cellValue=(String) tableModel.getValueAt(i, 1);
JTable常见用法细则  }
JTable常见用法细则}


六.添加表格的事件处理

JTable常见用法细则view.getTable().addMouseListener(new MouseListener()  {
JTable常见用法细则  public void mousePressed(MouseEvent e) {
JTable常见用法细则    // 鼠标按下时的处理
JTable常见用法细则  }
JTable常见用法细则
JTable常见用法细则  public void mouseReleased(MouseEvent e) {
JTable常见用法细则    // 鼠标松开时的处理
JTable常见用法细则  }
JTable常见用法细则
JTable常见用法细则  public void mouseEntered(MouseEvent e) {
JTable常见用法细则    // 鼠标进入表格时的处理
JTable常见用法细则  }
JTable常见用法细则
JTable常见用法细则  public void mouseExited(MouseEvent e) {
JTable常见用法细则    // 鼠标退出表格时的处理
JTable常见用法细则  }
JTable常见用法细则
JTable常见用法细则  public void mouseClicked(MouseEvent e) {
JTable常见用法细则    // 鼠标点击时的处理
JTable常见用法细则  }
JTable常见用法细则});
转自:http://www.blogjava.net/sitinspring/archive/2007/12/18/168425.html

你可能感兴趣的:(jtable)