Wątek przeniesiony 2016-12-02 10:02 z Java przez bogdans.

Zapis i odczyt do pliku z Tabeli

0

WItam,
Mój problem polega na tym , że chce w moim programie zarzadzającym Magazynem zrobic tak zwana małą Bazę danych w pliku TXT lub inny format , z ktorego i do ktorego bedzie zapisywała i odczytywała informację moja aplikacja . A mianowicie w NetBeansie mam wstawiona Tabele do ktorej moge dodawac i usuwać Dane (Tabela 3 kolumnowa) i teraz pytanie jak zrobic zeby dane z pliku wczytywaly sie automatycznie i zapisywaly przez nacisnięcie buttona zapisz. Jesli chodzi o wybieranie pliku do zapisu to akurat wiem lecz to sie tu nie sprawdza z góry dzięki i czekam na waszą pomoc.

0

Zaktualizuj model i wywołaj metodę fireTableDataChanged.

0

Mógłbyś mniej wiecej pokazac jak uzyc tej metody ? dalej raczej sobie poradzę ale ciezko mam zawsze zaczać gdy jest cos nowego dla mnie .

0

O którą metodę pytasz? Jeśli o fireTableDataChanged, to

model.fireTableDataChanged();

Jeśli o aktualizację modelu, to musisz pokazać kod tworzący table i model.

0

robie to w netbeans IDE wiec o tyle trudniej dla mnie mozliwe ze w IDE na zasadzie klocków czyli pod dany element piszemy kod jest latwiejsze . tutaj mam klase utworzona dla funkcjionowania tabeli czyli dodawanhia usuwania z niej danych .

package logins;

import javax.swing.JFrame;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Radek
 */
public class DodajUsuńTowar extends javax.swing.JFrame {

    /**
     * Creates new form DodajUsuńTowar
     */
    public DodajUsuńTowar() {
        initComponents();
        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jScrollPane1 = new javax.swing.JScrollPane();
        TTabela = new javax.swing.JTable();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        TFNazwa = new javax.swing.JTextField();
        TFIlość = new javax.swing.JTextField();
        TFCena = new javax.swing.JTextField();
        Bdodaj = new javax.swing.JButton();
        Busuń = new javax.swing.JButton();
        Buaktualnij = new javax.swing.JButton();
        LInfo = new javax.swing.JLabel();
        jButton1 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        TTabela.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Nazwa", "Ilość", "Cena"
            }
        ));
        TTabela.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                TTabelaMouseClicked(evt);
            }
        });
        jScrollPane1.setViewportView(TTabela);
        if (TTabela.getColumnModel().getColumnCount() > 0) {
            TTabela.getColumnModel().getColumn(2).setResizable(false);
        }

        jLabel1.setText("Nazwa");

        jLabel2.setText("Ilość");

        jLabel3.setText("Cena");

        Bdodaj.setText("Dodaj");
        Bdodaj.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                BdodajActionPerformed(evt);
            }
        });

        Busuń.setText("Usuń");
        Busuń.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                BusuńActionPerformed(evt);
            }
        });

        Buaktualnij.setText("Uaktualnij");
        Buaktualnij.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                BuaktualnijActionPerformed(evt);
            }
        });

        LInfo.setForeground(new java.awt.Color(255, 51, 51));

        jButton1.setText("Zapisz");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 490, Short.MAX_VALUE)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(64, 64, 64)
                        .addComponent(Bdodaj, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(29, 29, 29)
                        .addComponent(Busuń, javax.swing.GroupLayout.PREFERRED_SIZE, 69, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(30, 30, 30)
                        .addComponent(Buaktualnij, javax.swing.GroupLayout.PREFERRED_SIZE, 88, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(jButton1))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(43, 43, 43)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(LInfo, javax.swing.GroupLayout.PREFERRED_SIZE, 370, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGroup(layout.createSequentialGroup()
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 58, Short.MAX_VALUE)
                                    .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                                .addGap(55, 55, 55)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addComponent(TFIlość)
                                    .addComponent(TFCena, javax.swing.GroupLayout.DEFAULT_SIZE, 130, Short.MAX_VALUE)
                                    .addComponent(TFNazwa))))))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addGap(37, 37, 37)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(5, 5, 5)
                        .addComponent(TFNazwa))
                    .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(TFIlość, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(21, 21, 21)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(TFCena, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(Bdodaj)
                    .addComponent(Busuń)
                    .addComponent(Buaktualnij)
                    .addComponent(jButton1))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(LInfo, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 146, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );

        pack();
    }// </editor-fold>                        

    private void BdodajActionPerformed(java.awt.event.ActionEvent evt) {                                       

       DefaultTableModel model=(DefaultTableModel) TTabela.getModel();
       if(!TFNazwa.getText().trim().equals(""))
       {
           model.addRow(new Object[]{TFNazwa.getText(),TFIlość.getText(),TFCena.getText()}); 
       }
       else 
       {
           LInfo.setText("Produkt Nie może być dodany, pole 'Nazwa' musi być wypełnione!!!");
        }
    }                                      

    private void TTabelaMouseClicked(java.awt.event.MouseEvent evt) {                                     
       
        DefaultTableModel model=(DefaultTableModel) TTabela.getModel();
        TFNazwa.setText(model.getValueAt(TTabela.getSelectedRow(), 0).toString());
        TFIlość.setText(model.getValueAt(TTabela.getSelectedRow(), 1).toString());
        TFCena.setText(model.getValueAt(TTabela.getSelectedRow(), 2).toString());
    }                                    

    private void BuaktualnijActionPerformed(java.awt.event.ActionEvent evt) {                                            
       LInfo.setText("");
       DefaultTableModel model=(DefaultTableModel) TTabela.getModel();
       if(TTabela.getSelectedRow()==-1){
           if(TTabela.getRowCount()==0){
               LInfo.setText("Tabela jest pusta");
           }else{
               LInfo.setText("Musisz wybrać produkt");
           }
       }else{
           model.setValueAt(TFNazwa.getText(), TTabela.getSelectedRow(), 0);
           model.setValueAt(TFIlość.getText(), TTabela.getSelectedRow(), 1);
           model.setValueAt(TFCena.getText(), TTabela.getSelectedRow(), 2);
       }
    }                                           

    private void BusuńActionPerformed(java.awt.event.ActionEvent evt) {                                      
       DefaultTableModel model=(DefaultTableModel) TTabela.getModel();
       if(TTabela.getSelectedRow()==-1){
           if(TTabela.getRowCount()==0){
               LInfo.setText("Tabela jest pusta");
           }else{
               LInfo.setText("Musisz wybrać produkt");
           }
       }else{
           model.removeRow(TTabela.getSelectedRow());
       }
    }                                     

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        zapiszPlik();
    }                                        

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(DodajUsuńTowar.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(DodajUsuńTowar.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(DodajUsuńTowar.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(DodajUsuńTowar.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new DodajUsuńTowar().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JButton Bdodaj;
    private javax.swing.JButton Buaktualnij;
    private javax.swing.JButton Busuń;
    private javax.swing.JLabel LInfo;
    private javax.swing.JTextField TFCena;
    private javax.swing.JTextField TFIlość;
    private javax.swing.JTextField TFNazwa;
    private javax.swing.JTable TTabela;
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JScrollPane jScrollPane1;
    // End of variables declaration                   

    private void zapiszPlik() {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
}
0

i mam na mysli przy nacisnięciu "jButton1""jButton2" zeby automatycznie tabela sie zapelniala danymi z pliku .

package logins;

import javax.swing.JFrame;

/**
 *
 * @author Radek
 */
public class login_s extends javax.swing.JFrame {

    /**
     * Creates new form login_s
     */
    public login_s() {
        initComponents();
        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jLabel2 = new javax.swing.JLabel();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        jMenuItem1 = new javax.swing.JMenuItem();
        jMenu2 = new javax.swing.JMenu();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setMaximumSize(new java.awt.Dimension(630, 470));
        setMinimumSize(new java.awt.Dimension(630, 470));
        setPreferredSize(new java.awt.Dimension(630, 470));
        getContentPane().setLayout(null);

        jLabel1.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N
        jLabel1.setText("PANEL MAGAZYNU");
        getContentPane().add(jLabel1);
        jLabel1.setBounds(170, 20, 262, 62);

        jButton1.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        jButton1.setText("Lista Towaru");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });
        getContentPane().add(jButton1);
        jButton1.setBounds(71, 159, 138, 141);

        jButton2.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        jButton2.setText("Dodaj Towar   /      Usuń Towar");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });
        getContentPane().add(jButton2);
        jButton2.setBounds(260, 160, 251, 141);

        jLabel2.setIcon(new javax.swing.ImageIcon("C:\\Users\\Radek\\Documents\\NetBeansProjects\\magazyn1\\trr.jpg")); // NOI18N
        getContentPane().add(jLabel2);
        jLabel2.setBounds(0, 0, 631, 460);

        jMenu1.setText("File");

        jMenuItem1.setText("Wyjście");
        jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem1ActionPerformed(evt);
            }
        });
        jMenu1.add(jMenuItem1);

        jMenuBar1.add(jMenu1);

        jMenu2.setText("Edit");
        jMenuBar1.add(jMenu2);

        setJMenuBar(jMenuBar1);

        pack();
    }// </editor-fold>                        

    private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
       
    }                                          

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        
        ListaTowaru Info = new ListaTowaru();
            Info.setVisible(true);
            Info.setLocationRelativeTo(null);
    }                                        

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        DodajUsuńTowar Info = new DodajUsuńTowar();
            Info.setVisible(true);
            Info.setLocationRelativeTo(null);
    }                                        

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(login_s.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(login_s.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(login_s.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(login_s.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new login_s().setVisible(true);
           
            }
        });
    }


    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuItem jMenuItem1;
    // End of variables declaration                   

}
0

Prosiłem o kod tworzący model i tabelę, nie o całość (na widok kodu wygenerowanego przez NetBeans dostaję mdłości).
Wstawiaj kod w znaczniki <code class="java"></code>.

0
private void BdodajActionPerformed(java.awt.event.ActionEvent evt) {                                       

       DefaultTableModel model=(DefaultTableModel) TTabela.getModel();
       if(!TFNazwa.getText().trim().equals(""))
       {
           model.addRow(new Object[]{TFNazwa.getText(),TFIlość.getText(),TFCena.getText()}); 
       }
       else 
       {
           LInfo.setText("Produkt Nie może być dodany, pole 'Nazwa' musi być wypełnione!!!");
        }
    }                                      

    private void TTabelaMouseClicked(java.awt.event.MouseEvent evt) {                                     
       
        DefaultTableModel model=(DefaultTableModel) TTabela.getModel();
        TFNazwa.setText(model.getValueAt(TTabela.getSelectedRow(), 0).toString());
        TFIlość.setText(model.getValueAt(TTabela.getSelectedRow(), 1).toString());
        TFCena.setText(model.getValueAt(TTabela.getSelectedRow(), 2).toString());
    }                                    

    private void BuaktualnijActionPerformed(java.awt.event.ActionEvent evt) {                                            
       LInfo.setText("");
       DefaultTableModel model=(DefaultTableModel) TTabela.getModel();
       if(TTabela.getSelectedRow()==-1){
           if(TTabela.getRowCount()==0){
               LInfo.setText("Tabela jest pusta");
           }else{
               LInfo.setText("Musisz wybrać produkt");
           }
       }else{
           model.setValueAt(TFNazwa.getText(), TTabela.getSelectedRow(), 0);
           model.setValueAt(TFIlość.getText(), TTabela.getSelectedRow(), 1);
           model.setValueAt(TFCena.getText(), TTabela.getSelectedRow(), 2);
       }
    }                                           

    private void BusuńActionPerformed(java.awt.event.ActionEvent evt) {                                      
       DefaultTableModel model=(DefaultTableModel) TTabela.getModel();
       if(TTabela.getSelectedRow()==-1){
           if(TTabela.getRowCount()==0){
               LInfo.setText("Tabela jest pusta");
           }else{
               LInfo.setText("Musisz wybrać produkt");
           }
       }else{
           model.removeRow(TTabela.getSelectedRow());
       }
    }

.

0

W metodzie jButton1ActionPerformed otwórz plik, czytaj w pętli wiersze tego pliku, na podstawie każdego odczytanego wiersza twórz tablicę tab typu Object[] i wywołuj metodę

model.addRow(tab);
0

znowu dzisiaj wrocilem do tematu i przeanalizowałem to co napisaleś . Ale czy mogl bys dalej pomoc z otworzeniem (odczytaniem poprawnie pliku i utworzeniem petli.? utworzylem jedna kolumne i teraz chce do niej dodac nasz "row" lecz musze otworzyc odczytać plik i linia po lini przetworzyć na tebele na razie chę zrobic jedna kolumne aby to funkcjonowało. w pętli dodałem "linia" gdyz nie wiem jak zrobic odczytanie i co bedzie moim punktem zaczepiania "row = jedna linia".

public void Odczyt(){
         
String linia;
        DefaultTableModel model=(DefaultTableModel) TTabela.getModel();
         
        model.setColumnIdentifiers(new String[]{"Nazwa"});
         
        Object[] row = new Object[1];
        for (int i =0; i < linia.length(); i++)
         {
            
            model.addRow(row);
         }
        
    }

.

0
 for (int i =0; i < linia.length(); i++)
         {
            row[0] = linia[i];
            model.addRow(row);
         }
        
0
  public void Odczyt() throws FileNotFoundException{
         
        DefaultTableModel model=(DefaultTableModel) TTabela.getModel();
         
        model.setColumnIdentifiers(new String[]{"Nazwa"});
         
        Object[] row = new Object[1];
        File file = new File("ala.txt");
      Scanner in = new Scanner(file);
 
      String zdanie = in.nextLine();
      System.out.println(zdanie);
        for (int i =0; i < zdanie.length(); i++)
         {
            row[0] = zdanie[i];
            model.addRow(row);
         }
        
    }
0

Jak wygląda plik ala.txt?

  public void Odczyt() throws FileNotFoundException{
 
        DefaultTableModel model=(DefaultTableModel) TTabela.getModel();
 
        Object[] row = new Object[3]; //TTabela ma trzy kolumny
        File file = new File("ala.txt");
        Scanner in = new Scanner(file);
        while(in.hasNextLine())
        {
              String line = in.nextLine();
              row[0] = .... //kod zależy od budowy pliku
              row[1] = ...
              row[2] = ...
              model.addRow(row);
         }
         model.fireTableDataChanged();         
    }
0

to jest plik ktory na razie ma zapis :
1
1
1
1
1
w ten sposob chce uwzglednic jedna kolumne
przy uwzglednieniue 3 kolumn bedzie musial czytac np";" jako przedzial kolumn czyli:
1 ; 1; 1
1 ; 1; 1
1 ; 1; 1
nie wiem czy dobrze to rozumiem

0

a jak pogodzić public void run(){ z public ListaTowaru() throws FileNotFoundException { gdyz po dodaniu do public ListaTowaru() + throws FileNotFoundException wyskakuje blad przy public void run(){ z kolei jesli bym nie dodał throws FileNotFoundException przy zainicjowanej Odczyt(); wyskoczy bład.

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package logins;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import javax.swing.JFrame;
import javax.swing.table.DefaultTableModel;



/**
 *
 * @author Radek
 */
public class ListaTowaru extends javax.swing.JFrame {

    /**
     * Creates new form ListaTowaru
     */
    public ListaTowaru() throws FileNotFoundException {
        initComponents();
        Odczyt();
        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    }
    public void Odczyt() throws FileNotFoundException{
        DefaultTableModel model=(DefaultTableModel) TTabela.getModel();
         
        model.setColumnIdentifiers(new String[]{"Nazwa"});
         
        Object[] row = new Object[1];
        File file = new File("ala.txt");
      Scanner in = new Scanner(file);
 
        while(in.hasNextLine())
         {
             String line = in.nextLine();
            row[0] = line;
            row[1] = line;
            row[2] = line;
            
            model.addRow(row);
         }model.fireTableDataChanged();
         
        
    }
    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jScrollPane2 = new javax.swing.JScrollPane();
        TTabela = new javax.swing.JTable();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        TTabela.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
        jScrollPane2.setViewportView(TTabela);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 505, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 386, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>                        

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(ListaTowaru.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(ListaTowaru.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(ListaTowaru.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(ListaTowaru.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            
            public void run(){
               
                   new ListaTowaru().setVisible(true);
                
                   
                
           
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JTable TTabela;
    private javax.swing.JScrollPane jScrollPane2;
    // End of variables declaration                   
}

0

dobrze juz wszystko działa problem rozwiazany tylko teraz w sprawie odczytania tego pliku jak skonstruowac

 while(in.hasNextLine())
         {
             String line = in.nextLine();
            row[0] = line;   //  pierwsza kolumna jest poprawnie
            row[1] = line;   // a teraz zeby druga kolumna najlepiej czytala z pierwszej lini w naszym pliku po przecinku czyli pierwsza czyta 1 , 2 - druga kolumna , 3 - trzecia kolumna.
            row[2] = line;
            
            model.addRow(row);
         }model.fireTableDataChanged();
0
            String line = in.nextLine();
            String[] columns = line.split(";");  
            row[0] = columns[0];
            row[1] = columns[1];
            row[2] = columns[2];

I zdecyduj się co jest w pliku, przecinek czy średnik.

0

Nie wiem czemu ale jakies bledy wywala
run:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 1
at logins.ListaTowaru.Odczyt(ListaTowaru.java:53)
at logins.ListaTowaru.<init>(ListaTowaru.java:32)
at logins.ListaTowaru$1.run(ListaTowaru.java:135)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

0

Widocznie w jakimś wierszu pliku "ala.txt" nie ma żadnego średnika.

0

Dziekuję za pomoc wszystko działa . a jeszcze takie pytanko czy da rade zrobic tak ze jesli nieraz nie bedzie gdzies " ," lub ";" to pojdzie ?

0
            String[] columns = line.split(";"); 
            if(columns.length > 2){ 
                row[0] = columns[0];
                row[1] = columns[1];
                row[2] = columns[2];
                model.addRow(row);
            }
0

mam jeszcze taki problem ze nie czyta np zapisu pliku " klucz fi 50 ,31 ,43 zł" nie wiem czemu same czyta same liczby

1 użytkowników online, w tym zalogowanych: 0, gości: 1