Hallo Forum!
Ich habe ein vermutliches triviales Problem, leider aber für mich im Moment unlösbar.
Ich befülle meine JTable aus dem Inhalt eines Files, welches als Key - Value Pair aufgesetzt wurde.
Das Befüllen funktioniert soweit ohne Probleme, will ich jedoch die Daten ändern, dann schreibt er leider immer die Daten in die erste Spalte anstatt sie eigentlich in die 2te Spalte zu schreiben.
Ich arbeite mit einem einfachen Vector, in welchem ich mir die Daten aus dem File schreibe.
Ich vermute mal, dass es genau daran liegt, leider weiss ich aber nicht, wie ich es hinbiegen muss, damit es so funktioniert, wie ich es gerne hätte - beide Spalten editierbar und die Werte werden auch in die Spalte geschrieben, in welcher ich sie brauche!
Vll. kann mir jemand weiterhelfen!
Danke schon mal vielmals!
Mein Code dazu sieht folgendermaßen aus:
Ich habe ein vermutliches triviales Problem, leider aber für mich im Moment unlösbar.
Ich befülle meine JTable aus dem Inhalt eines Files, welches als Key - Value Pair aufgesetzt wurde.
Das Befüllen funktioniert soweit ohne Probleme, will ich jedoch die Daten ändern, dann schreibt er leider immer die Daten in die erste Spalte anstatt sie eigentlich in die 2te Spalte zu schreiben.
Ich arbeite mit einem einfachen Vector, in welchem ich mir die Daten aus dem File schreibe.
Ich vermute mal, dass es genau daran liegt, leider weiss ich aber nicht, wie ich es hinbiegen muss, damit es so funktioniert, wie ich es gerne hätte - beide Spalten editierbar und die Werte werden auch in die Spalte geschrieben, in welcher ich sie brauche!
Vll. kann mir jemand weiterhelfen!
Danke schon mal vielmals!
Mein Code dazu sieht folgendermaßen aus:
Java:
package configtool;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
import java.util.Vector;
import javax.swing.table.AbstractTableModel;
public class Model extends AbstractTableModel{
Vector data;
Vector columns;
String line;
public Model() {
String line;
data = new Vector();
columns = new Vector();
try {
FileInputStream fis = new FileInputStream("C:/R/config.properties");
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
StringTokenizer st1 = new StringTokenizer(br.readLine(), "=");
while (st1.hasMoreTokens())
columns.addElement(st1.nextToken());
while ((line = br.readLine()) != null) {
StringTokenizer st2 = new StringTokenizer(line, "=");
while (st2.hasMoreTokens())
data.addElement(st2.nextToken());
}
br.close();
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public int getRowCount() {
return data.size() / getColumnCount();
}
@Override
public int getColumnCount() {
return columns.size();
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
return (String) data.elementAt((rowIndex * getColumnCount()) + columnIndex);
}
@Override
public String getColumnName(int column) {
if ( column == 0 )
return "Key";
else
return "Value";
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return true;
}
@Override
public Class getColumnClass(int columnIndex) {
if(columnIndex==1)
return String.class;
return String.class;
}
@Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
data.setElementAt(aValue, rowIndex);
fireTableDataChanged();
}
}
Zuletzt bearbeitet von einem Moderator: