2015-05-18 19 views
1

刪除行我做了一個表,我自己的模式,使細胞不能編輯從JTable中

String[] colNames = {"Barcode","Name","Exp Date"}; 
    String[][] rowInfo = new String[mainSuper.getProductVector().size()][3]; 
    Iterator<Product> itr=mainSuper.getProductVector().iterator(); 
    int i=0; 
    Product temp; 
    while(itr.hasNext()){ 
     temp= itr.next(); 
     rowInfo[i][0]=temp.getBarcode(); 
     rowInfo[i][1]=temp.getName(); 
     if (temp.getExpDate()==null) { 
      rowInfo[i][2]="None"; 
     }else{ 
     rowInfo[i][2]=temp.getExpDate().toString(); 
     } 
     i++; 
    } 
    prodTable=new JTable(rowInfo, colNames){ 
     private static final long serialVersionUID = 1L; 

     public boolean isCellEditable(int row, int column) {     
       return false;    
     } 
    }; 

我試圖讓一個按鈕,將刪除表中選定行(只有一個行可以被選中),但我無法使其工作。我嘗試了一些來自網站的解決方案,但都沒有工作。謝謝您的幫助。

+0

您能否在您嘗試刪除行的地方提供您的代碼? –

回答

0

您可以從一個JTable這樣刪除行:

((DefaultTableModel)yourJTable.getModel()).removeRow(rowindex); 

相反「的rowIndex」把你想刪除你的行中。

+1

我試過了,但出現此錯誤: 「線程中的異常」AWT-EventQueue-0「java.lang.ClassCastException:javax.swing.JTable $ 1無法在GUI上轉換爲javax.swing.table.DefaultTableModel \t .MainFrame $ 2.actionPerformed(MainFrame.java:70) – kfir648

+0

是的,如果你發現這個錯誤?它是否工作? –

+1

我通過擴展defaultTableModel的內部類來解決它。我之前嘗試過,但它沒有工作,因爲我忘了添加aconstructor。 – kfir648