2011-12-24 71 views
0

在我的JTable中添加新行時,會自動選擇一個「JTextString」單元格進行編輯。如果在單元格中輸入的新值未通過驗證,則應刪除此新行。如何在刪除JTable中的一行後停止編輯單元格

在我DefacultCellEditor比如我有:

 @Override 
     public boolean stopCellEditing(){ 
      /* do something */ 

       if (/* failed validation */) { 
        super.stopCellEditing(); 
        myTable.getSelectionModel().clearSelection(); 
        myTable.removeLastRow(); 
        return true; 
       } 
      .... 
     } 

其實當驗證失敗,最後一行被刪除:

model.removeRow(model.getRowCount() - 1); 

但是上面列在同一細胞是編輯。我如何停止編輯並取消所有行的選擇?

+0

讓一位編輯改變目標是錯誤的:它的目的是_notify_準備就緒,沒有別的。相反,讓它報告任何驗證錯誤(至少在stopEditing上返回false,或者激發自定義信號)),並讓調用方(或另一個監聽器)根據需要處理任何邏輯 – kleopatra 2011-12-25 12:41:21

回答

0

如果您發佈了可以直接運行的代碼示例,這將會很有幫助。既然你沒有,我還沒有測試過 - 我不知道你在表模型中做了什麼其他的改變。

變化

super.stopCellEditing(); 

super.cancelCellEditing(); 

clearSelection刪除行。

相關問題