JTable常见用法细则
生活随笔
收集整理的這篇文章主要介紹了
JTable常见用法细则
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
JTable是Swing編程中很常用的控件,這里總結了一些常用方法以備查閱.歡迎補充,轉載請注明作者與出處.
一.創建表格控件的各種方式:
1)??調用無參構造函數.
2)??以表頭和表數據創建表格.
String[]?columnNames?=?{"col1",?"col2"};
????
JTable?table?=?new?JTable(cellData,?columnNames);
3)??以表頭和表數據創建表格,并且讓表單元格不可改.
Object[][]?cellData?=?null;
DefaultTableModel?model?=?new?DefaultTableModel(cellData,?headers)?{
??public?boolean?isCellEditable(int?row,?int?column)?{
????return?false;
??}
};
table?=?new?JTable(model);
二.對表格列的控制
1) 設置列不可隨容器組件大小變化自動調整寬度.
2) 限制某列的寬度.
firsetColumn.setPreferredWidth(30);
firsetColumn.setMaxWidth(30);
firsetColumn.setMinWidth(30);
3) 設置當前列數.
int?count=5;
tableModel.setColumnCount(count);
4) 取得表格列數
5) 添加列
tableModel.addColumn("新列名");
6) 刪除列
三.對表格行的控制
1) 設置行高
2) 設置當前航數
int?n=5;
tableModel.setRowCount(n);
3) 取得表格行數
4) 添加表格行
tableModel.addRow(new?Object[]{"sitinspring",?"35",?"Boss"});
5) 刪除表格行
model.removeRow(rowIndex);//?rowIndex是要刪除的行序號
四.存取表格單元格的數據
1) 取單元格數據
String?cellValue=(String)?tableModel.getValueAt(row,?column);//?取單元格數據,row是行號,column是列號
2) 填充數據到表格.
注:數據是Member類型的鏈表,Member類如下:
????//?名稱
????private?String?name;
????
????//?年齡
????private?String?age;
????
????//?職務
????private?String?title;
}
填充數據的代碼:
??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) 取得表格中的數據
??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) 取得用戶所選的單行
DefaultTableModel?tableModel?=?(DefaultTableModel)?table.getModel();
if(selectRows==1){
??int?selectedRowIndex?=?table.getSelectedRow();?//?取得用戶所選單行??
??
??.//?進行相關處理
}
2) 取得用戶所選的多行
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);
??}
}
六.添加表格的事件處理
??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)?{
????//?鼠標點擊時的處理
??}
}); 轉自:http://www.blogjava.net/sitinspring/archive/2007/12/18/168425.html
總結
以上是生活随笔為你收集整理的JTable常见用法细则的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2019eclipse 中文汉化包 安装
- 下一篇: Win7下JDK环境变量的设置