视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
java表格控件JTable常用操作详解
2025-10-02 14:57:03 责编:小OO
文档
一.创建表格控件的各种方式:

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) 以表头和表数据创建表格,并且让表单元格不可改.

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_RESIZE_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) 取得表格列数

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) 设置当前航数

DefaultTableModel 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 = (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类如下:

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 String[3];

arr[0]=member.getName();

arr[1]=member.getAge();

arr[2]=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;iMember member=new Member();

member.setName((String)tableModel.getValueAt(i, 0));// 

取得第i行第一列的数据

member.setAge((String)tableModel.getValueAt(i, 1));// 

取得第i行第二列的数据

member.setTitle((String)tableModel.getValueAt(i, 2));// 

取得第i行第三列的数据

members.add(member);

}

return members;

}

五.取得用户所选的行

1) 取得用户所选的单行

int selectRows=table.getSelectedRows().length;// 取得用户所选行的行数

DefaultTableModel tableModel = (DefaultTableModel) table.getModel();

if(selectRows==1){

int selectedRowIndex = table.getSelectedRow(); // 取得用户所选单行 

.// 进行相关处理

}

2) 取得用户所选的多行

int selectRows=table.getSelectedRows().length;// 取得用户所选行的行数

DefaultTableModel tableModel = (DefaultTableModel) table.getModel();

if(selectRows>1)

int[] selRowIndexs=table.getSelectedRows();// 用户所选行的序列

for(int i=0;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) {

// 鼠标点击时的处理

}

});下载本文

显示全文
专题