一、JTable常用操作
设置表格的表头不显示
设置表格带滚动条
设置表格失去焦点后取消编辑状态
设置表格为选中
给表格添加监听事件
//设置表格的表头不显示
JTable jTable= new JTable();
DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
renderer.setPreferredSize(new Dimension(0, 0));
jTable.getTableHeader().setDefaultRenderer(renderer);
//设置表格带滚动条,只需将表格放进滚动面板中
JScrollPane jsp = new JScrollPane(jTable);
jsp.setPreferredSize(new Dimension(width, height));//设置首选大小,超过改大小开始滚动
//设置表格失去焦点后取消编辑状态
jTable.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
//设置start到end行为选中状态,start=end设置某一行为选中
jTable.addRowSelectionInterval(start, end)
//设置start到end列为选中状态,start=end设置某一列为选中
jTable.addColumnSelectionInterval(start, end);
//给表格添加监听事件
DefaultTableModel d=new DefaultTableModel(new Object[][]{}, new String[]{""});
JTable table=new JTable(d);
d.addTableModelListener(new TableModelListener() {
@Override
public void tableChanged(TableModelEvent e) {
//e.getFirstRow()获取首个改变的行
//e.getLastRow()获取最后改变的行
//若只改变一行则两者相同
//e.getColumn()获取改变的列
if (e.getType() == 1){
//e = 1 添加行或列触发的事件
} else if (e.getType() == 0) {
//e = 0 修改表格内容触发的事件
}else if(e.getType() == -1){
//e = -1 删除行或列触发的事件
}
}
});
二、DefaultTableModel的简单使用
//DefaultTableModel用法
//1、声明表格模型DefaultTableModel
//第一个参数为二维数组表示表格数组,第二个参数为一维数组代表列名。
DefaultTableModel dtm=new DefaultTableModel(new Object[][]{}, new String[]{""});
//2、创建表格,并设置模型
JTable table=new JTable(dtm);
dtm.getRowCount();//获取表格的总行数
dtm.getColumnCount();//获取表格的总列数
dtm.getValueAt(row,col);//获取指定行指定列的单元格内容
dtm.setValueAt(value,row,col);//设置指定行和列的值
//遍历表格内容
for (int i=0;i<dtm.getRowCount();i++){
for (int j=0;j<dtm.getColumnCount();j++){
Object valueAt = dtm.getValueAt(i, j);
}
}
dtm.addRow(new String[]{});//添加行
dtm.removeRow(row);//删除指定行
dtm.setRowCount(0);//删除表格数据