3
我有3列可變行的JTable。用戶可以編輯任何單元格的值(因爲單元格可選)並按回車鍵。一旦他/她按下「保存」,我就可以獲得每個單元格的值,並將它們合併爲一個單獨的字符串,每個單元格的值由管道(|)分隔。例如(Col1 | Col1 | Col1 | Col2 | Col2 | Col2 |)到目前爲止,這麼好。獲取JTable單元格的值
問題是,儘管此字符串轉換方法有效,但當用戶更改表格中單元格的值時,代碼仍會獲取JTable單元格的OLD值。跟我到目前爲止?我不知道我該如何解決這個問題。這是下面的代碼,以防萬一它是必需的。 (我意識到我的StringBuffer是我應該學會離開的東西)
int rowNumber = inventoryData.getModel().getRowCount();
StringBuffer compiledData = new StringBuffer();
Object currentData = null;
for(int i=0;i<rowNumber;i++){
if(inventoryData.getModel().getValueAt(i, 0) != null) currentData = inventoryData.getModel().getValueAt(i, 0).toString();
compiledData.append(currentData.toString()+"|");
if(inventoryData.getModel().getValueAt(i, 1) != null) currentData = inventoryData.getModel().getValueAt(i, 1).toString();
compiledData.append(currentData.toString()+"|");
if(inventoryData.getModel().getValueAt(i, 2) != null) currentData = inventoryData.getModel().getValueAt(i, 2).toString();
compiledData.append(currentData.toString()+"|");
currentData = "";
}
String repPipesRemoved = compiledData.toString().replaceAll("([|])\\1+", "");
StringBuffer tempBuffer = new StringBuffer(repPipesRemoved);
tempBuffer.append("|");
String finalString = tempBuffer.toString();
感謝您閱讀 - 有什麼想法嗎?
按回車鍵,否則it'l返回舊值只有.. – Luna
我們可能需要看到你的'TableModel'。你如何實現'isCellEditable()'? 'setValueAt()'?發佈[sscce](http://sscce.org/)會很有幫助。 – trashgod