我必須使用ArrayList
來填充JTable
,但是當表格顯示時,它會填充其他內容,但填充了正確的信息。點擊下一個鏈接即可查看我的表格。由ArrayList填充的JTable,錯誤的結果
gui1
是主類的名稱,theObject
是包含的信息的結構上的表將被顯示的類的名稱。
請幫我解決這個問題!
ArrayList
定義:
static ArrayList<theObject> datos = new ArrayList<theObject>();
這是代碼加載名爲 「DATOS」 ArrayList中:
嘗試{// --------------- --------- carga registros de proyectos ----------------------------
contador = 0;
fr = new FileReader(file);
br = new BufferedReader(fr);
while ((cadena1 = br.readLine()) != null){
datos1 [0] = cadena1.substring(0,8);
datos1 [1] = cadena1.substring(8,38);
datos1 [2] = cadena1.substring(38,52);
datos1 [3] = cadena1.substring(52,57);
datos1 [4] = cadena1.substring(57,62);
datos1 [5] = cadena1.substring(62,72);
datos1 [6] = cadena1.substring(72,77);
datos1 [7] = cadena1.substring(77,82);
datos1 [8] = cadena1.substring(82,89);
datos1 [9] = cadena1.substring(89,94);
datos1 [10] = cadena1.substring(94,239);
datos.add(new theObject(datos1));
contador ++;
}
br.close();
}
catch (IOException e) {
e.printStackTrace();
}
桌子填充此行:
tabla = new JTable(new MyModel(datos));
,現在參與代碼的類:
class theObject {
String sap,cte,pep,dis1,dis2,norma,nvent,ntc,tmando,tparalel,equip;
theObject(String dato[]) {
this.sap = dato[0];
this.cte = dato[1];
this.pep = dato[2];
this.dis1 = dato[3];
this.dis2 = dato[4];
this.norma = dato[5];
this.nvent = dato[6];
this.ntc = dato[7];
this.tmando = dato[8];
this.tparalel = dato[9];
this.equip = dato[10];
}
}
class MyModel extends AbstractTableModel {
private String[] columnNames = { "FERT","CLIENTE ","PEP","A","B","C","D","E","F","G","H" };
ArrayList<theObject> arr1 = null;
MyModel(ArrayList<theObject> arr1) {
this.arr1 = arr1;
}
public int getColumnCount() {
return columnNames.length;
}
public int getRowCount() {
return pru2.datos.size();
}
public Object getValueAt(int row, int col) {
theObject a1 = datos.get(row);
return a1;
}
}
在Eclipse編譯後我沒有錯誤,所以我不能確定問題
我們無法調試隱形代碼。請發佈您用於生成這些結果的代碼。我立即看到的一件事就是你可能不想要像'guiObject @ 4ab60e21'這樣的東西。這只是覆蓋這些對象的'toString'方法的問題。 – csmckelvey
@Aaron發佈您的代碼 – bumbumpaw
對不起,我剛剛添加了一些代碼 – Aaron