Ahojte,
potreboval by som pomôcť s jedným (pre mňa dosť ťažkým) problémom. Programujem si aplikáciu v ktorej pridávam jednotlivé riadky do tabuľky na základe vyplneného formuláru. číže vyplním si pár jTextField-ov a po stlačení jButton-u (pridať) sa mi premenné zapíšu do tabuľky. Okrem toho sa tieto premenné uložia aj do textového súboru. Do tohto momentu mi v aplikácii všetko funguje. Problém nastáva, keď vypnem a opatovne zapnem aplikáciu. Tu by som potreboval aby sa tabuľka opať vyplnila na základe môjho txt súboru. Preto som si spravil metódu ktorú volám hneď po spustení aplikácie. Vyzerá takto:
public static void nacitajDataDoTabulky(){
String eanKod;
String nazov;
Double objem;
Double obsah;
int stav;
try{
BufferedReader in=new BufferedReader(new FileReader("tabulka.txt"));
String str;
while((str = in.readLine()) != null){
// spracovanie nacitaneho riadku
String[] casti=str.split(";");
eanKod=casti[1];
nazov=casti[2];
objem=Double.parseDouble(casti[3]);
obsah=Double.parseDouble(casti[4]);
stav=Integer.parseInt(casti[5]);
data.addRow(new Object[] {eanKod, nazov, objem, obsah, stav});
}
}catch(IOException e){
}
}
pridávam aj kód ktorý sa vykonáva po stalčení tlačítka pridaj (tu všetko funguje pridávam ho pre lepšie pochopenie môjho problému)
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String nazov = jTextField2.getText();
String eanKod = jTextField1.getText();
double obsah;
double objem;
int stav;
try{
objem = Double.parseDouble(jTextField3.getText());
} catch(NumberFormatException ex){
JOptionPane.showMessageDialog(rootPane,"Správne zadaj objem balenia");
jTextField3.setText("");
jTextField3.requestFocusInWindow();
return;
}
try{
obsah = Integer.parseInt(jTextField4.getText());
} catch(NumberFormatException ex){
JOptionPane.showMessageDialog(rootPane,"Správne zadaj obsah balenia");
jTextField4.setText("");
jTextField4.requestFocusInWindow();
return;
}
try{
stav = Integer.parseInt(jTextField5.getText());
} catch(NumberFormatException ex){
JOptionPane.showMessageDialog(rootPane,"Správne zadaj aktuálny stav na sklade");
jTextField5.setText("");
jTextField5.requestFocusInWindow();
return;
}
data.addRow(new Object[] {eanKod, nazov, objem, obsah, stav});
String datum=getDateTime();
//zapis hodnot do txt suboru
String zaznamDoTabulky=datum+";"+eanKod+";"+nazov+";"+objem+";"+obsah+";"+stav;
try{
// pridavanie k existujucemu suboru
BufferedWriter bw=new BufferedWriter(new FileWriter("tabulka.txt",true));
bw.write(zaznamDoTabulky+"\n");
bw.close();
}catch(IOException e){
}
}
a takto mam definovany dataTableModel:
private static DefaultTableModel data;
private final String[] HLAVICKA = {"EAN kód","Názov","Objem","Obsah alkoholu","Aktuálny stav"}; // vytvorenie hlavicky tabulky
/** Creates new form tabulka */
public tabulka() {
initComponents();
data = new DefaultTableModel(HLAVICKA,0); //nastavenie hlavicky do tabulky
jTable1.setModel(data); //nastavenie prepojenia modelu s tabulkou
}
dúfam že som môj problém priblížil dostatočne a ďakujem za prípadné odpoveďe.
Gesler