使用swing中的JTable時常見問題

學員在初學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;}
              };

發佈了32 篇原創文章 · 獲贊 39 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章