Načítanie JTable z textového súboru – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Načítanie JTable z textového súboru – Java – Fórum – Programujte.comNačítanie JTable z textového súboru – Java – Fórum – Programujte.com

 

Gesler0
Duch
9. 8. 2017   #1
-
0
-

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

Nahlásit jako SPAM
IP: 85.216.253.–
Gesler0
Duch
15. 8. 2017   #2
-
0
-

ok. vyriešil som to nejak. Neviem síce prečo mi to nefungovalo, ale nové riešenie som spravil tak, že sa mi tabuľka nenačíta hneď pri zapnutí programu, ale načíta sa až po stlačení tlačítka na to určené. 

Nahlásit jako SPAM
IP: 144.36.194.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 40 hostů

Podobná vlákna

Načítanie zo súboru — založil Grungy

Triedenie textoveho suboru — založil Wulp

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý