學員在初學java使用swing的JTable時經常會想達到各種使用效果,下面整理了一些被問較多的操作,給出了參考解決方案。結合這些大家可以根據API文檔,逐漸認識swing的用法。
1、 隱藏指定列
table.getColumnModel().removeColumn(table.getColumnModel().getColumn(0));
//在表格中不顯示tableModel中的第0列信息
2、 設置是否允許列選取操作
void setColumnSelectionAllowed(boolean b);
3、 隱藏網格線
table.setShowGrid(false);
4、 設置表格列不能被鼠標拖動
table.getTabelHeader().setReorderingAllowed(false);
5、 向表格組件中添加一行數據
DefaultTableModel model = (DefaultTableModel)table.getModel();
Model.addRow(Sting[] data);
6、 取消表格列的自動大小
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
7、 設置表格某列的寬度
table.getColumnModel().getColumn(0).setPreferredWidth(500);
8、 修改表格行高度
table.setRowHeight(50);//設置行高爲50
t.setRowHeight(1,50);//設置第一行的行高爲50
9、 修改表格列寬度
table.getColumnModel().getColumn(2).setPreferredWidth(10);
//設置表格的第3列的寬度爲10
10、 設置表格是否可以列選取
setColumnSelectionAllowed(boolean)
11、 設置是否允許行選取
setRowSelectionAllowed(boolean)
12、 獲取表格選中行中的某列的信息
int row = table.getSelectedRow();
if(row ==-1)
{
JOptionPane.showMessageDialog(this,"請首先選擇行");
return;
}
String userno = dtm.getValueAt(row,0).toString();//獲取選中行的第0列信息
13、 表格選擇事件處理:
implements ListSelectionListener
如下方式添加監聽:
table.getSelectionModel().addListSelectionListener(this);
需要實現下面方法:
public void valueChanged(ListSelectionEvent el){
String tempString="";
//JTable的getSelectedRows()與getSelectedColumns()方法會返回已選取表格cell的index Array數據.
int[] rows=table.getSelectedRows();
int[] columns=table.getSelectedColumns();
//JTable的getValueAt()方法會返回某行的cell數據,返回值是Object數據類型,因此我們要自行轉成String數據類型.
for (int i=0;i<rows.length;i++){
for (int j=0;j<columns.length;j++)
tempString = tempString+" "+(String)table.getValueAt(rows[i], columns[j]);
}
label.setText("你選取:"+tempString);
}
14、 設置表格單元格不能編輯的方法:
//在創建JTable數據模型時,重寫public boolean isCellEditable(int row,int column)方法
dtm=new DefaultTableModel()
{
public boolean isCellEditable(int row,int column){return false;}
};