sitinspring original, reprint please indicate the author and source.
JTable is a very commonly used control in Swing programming, here is a summary of some common methods for reference. Welcome to add, reprint please indicate the author and source
. Method :
1) Call the no-argument constructor .
2) Create a table with header and table data .
3) Create a table with the header and table data, and make the table cells immutable .
2. Control of table columns
1) Set the column to not automatically adjust the width with the size of the container component.
2) Limit the width of a column.
3) Set the current number of columns.
4) Get the number of table columns
5) Add column
6) delete column
3. Control of table rows
1) Set row height
2) Set the current flight number
3) 取得表格行数
4) 添加表格行
5) 删除表格行
四.存取表格单元格的数据
1) 取单元格数据
2) 填充数据到表格.
注:数据是Member类型的链表,Member类如下:
填充数据的代码 :
2) 取得表格中的数据
五.取得用户所选的行
1) 取得用户所选的单行
2) 取得用户所选的多行
六.添加表格的事件处理
JTable is a very commonly used control in Swing programming, here is a summary of some common methods for reference. Welcome to add, reprint please indicate the author and source
. Method :
1) Call the no-argument constructor .
JTable table =
new
JTable();
2) Create a table with header and table data .
Object[][] cellData =
{{"row1-col1", "row1-col2"},{"row2-col1", "row2-col2"}}
;
String[] columnNames = {"col1", "col2"} ;
JTable table = new JTable(cellData, columnNames);
String[] columnNames = {"col1", "col2"} ;
JTable table = new JTable(cellData, columnNames);
3) Create a table with the header and table data, and make the table cells immutable .
String[] headers =
{ "表头一", "表头二", "表头三" }
;
Object[][] cellData = null ;
DefaultTableModel model = new DefaultTableModel(cellData, headers) {
public boolean isCellEditable(int row, int column) {
return false;
}
} ;
table = new JTable(model);
Object[][] cellData = null ;
DefaultTableModel model = new DefaultTableModel(cellData, headers) {
public boolean isCellEditable(int row, int column) {
return false;
}
} ;
table = new JTable(model);
2. Control of table columns
1) Set the column to not automatically adjust the width with the size of the container component.
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
2) Limit the width of a column.
TableColumn firsetColumn = table.getColumnModel (). GetColumn (0);
firsetColumn.setPreferredWidth (30);
firsetColumn.setMaxWidth (30);
firsetColumn.setMinWidth (30);
firsetColumn.setPreferredWidth (30);
firsetColumn.setMaxWidth (30);
firsetColumn.setMinWidth (30);
3) Set the current number of columns.
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
int count=5;
tableModel.setColumnCount(count);
int count=5;
tableModel.setColumnCount(count);
4) Get the number of table columns
int
cols = table.getColumnCount();
5) Add column
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
tableModel.addColumn("新列名");
tableModel.addColumn("新列名");
6) delete column
table.removeColumn(table.getColumnModel().getColumn(columnIndex));
//
columnIndex is the serial number of the column to be removed
3. Control of table rows
1) Set row height
table.setRowHeight(20);
2) Set the current flight number
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
int n=5;
tableModel.setRowCount(n);
int n=5;
tableModel.setRowCount(n);
3) 取得表格行数
int rows = table.getRowCount();
4) 添加表格行
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
tableModel.addRow( new Object[] {"sitinspring", "35", "Boss"});
tableModel.addRow( new Object[] {"sitinspring", "35", "Boss"});
5) 删除表格行
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
model.removeRow(rowIndex); // rowIndex是要删除的行序号
model.removeRow(rowIndex); // rowIndex是要删除的行序号
四.存取表格单元格的数据
1) 取单元格数据
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
String cellValue=(String) tableModel.getValueAt(row, column); // 取单元格数据,row是行号,column是列号
String cellValue=(String) tableModel.getValueAt(row, column); // 取单元格数据,row是行号,column是列号
2) 填充数据到表格.
注:数据是Member类型的链表,Member类如下:
public
class Member
{
// 名称
private String name;
// 年龄
private String age;
// 职务
private String title;
}
// 名称
private String name;
// 年龄
private String age;
// 职务
private String title;
}
填充数据的代码 :
public
void fillTable(List<Member> 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();
}
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<Member> getShowMembers()
{
List<Member> members=new ArrayList<Member>();
DefaultTableModel tableModel = (DefaultTableModel) table
.getModel();
int rowCount=tableModel.getRowCount();
for(int i=0;i<rowCount;i++){
Member 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;
}
List<Member> members=new ArrayList<Member>();
DefaultTableModel tableModel = (DefaultTableModel) table
.getModel();
int rowCount=tableModel.getRowCount();
for(int i=0;i<rowCount;i++){
Member 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(); // 取得用户所选单行
.// 进行相关处理
}
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<selRowIndexs.length;i++) {
// 用tableModel.getValueAt(row, column)取单元格数据
String cellValue=(String) tableModel.getValueAt(i, 1);
}
}
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
if(selectRows>1)
int[] selRowIndexs=table.getSelectedRows(); // 用户所选行的序列
for( int i=0;i<selRowIndexs.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) {
// 鼠标点击时的处理
}
});
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) {
// 鼠标点击时的处理
}
});