Pobranie danych z Combobox do jTable

0

Witam,
mam następujący problem chce żeby w programie była możliwość pobrania danych z kilku comboboxów do komórek jTable po naciśnięciu przycisku. Użytkownik po wybraniu odpowiednich możliwości w combobox i naciśnięciu przycisku dodaj sprawi, że dane zostaną przeniesione do tabeli. I chciałbym dane zostały zapisane w tabeli. Gdzie popełniłem błąd?
Z góry dziękuje za odpowiedź

package biblioteka;

public class biblioteka extends javax.swing.JFrame {

    DefaultTableModel model;
    public biblioteka() {
        initComponents();
        model=(DefaultTableModel)tImie.getModel();
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jDialog1 = new javax.swing.JDialog();
        bAdd = new javax.swing.JButton();
        tImie = new javax.swing.JComboBox();
        tFrez = new javax.swing.JComboBox();
        tOstrze = new javax.swing.JComboBox();
        tEfektywna = new javax.swing.JComboBox();
        tCalkowita = new javax.swing.JComboBox();
        tMaterial = new javax.swing.JComboBox();
        label1 = new java.awt.Label();
        label3 = new java.awt.Label();
        label4 = new java.awt.Label();
        label5 = new java.awt.Label();
        label6 = new java.awt.Label();
        label7 = new java.awt.Label();
        jScrollPane2 = new javax.swing.JScrollPane();
        tblNarzedzia = new javax.swing.JTable();
        label2 = new java.awt.Label();
        tData = new java.awt.TextField();
        bEdit = new javax.swing.JButton();
        bDelete = new javax.swing.JButton();

        javax.swing.GroupLayout jDialog1Layout = new javax.swing.GroupLayout(jDialog1.getContentPane());
        jDialog1.getContentPane().setLayout(jDialog1Layout);
        jDialog1Layout.setHorizontalGroup(
            jDialog1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 400, Short.MAX_VALUE)
        );
        jDialog1Layout.setVerticalGroup(
            jDialog1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 300, Short.MAX_VALUE)
        );

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        bAdd.setLabel("Dodaj");
        bAdd.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                bAddActionPerformed(evt);
            }
        });

        tImie.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Marek", "Adam", "Patryk", "Łukasz", "Artur" }));
        tImie.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                tImieActionPerformed(evt);
            }
        });

        tFrez.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "FR0,5", "FR0,6", "FR1", "FR2", "FR3", "FR4", "FR6", "FR8", "FR10", "FR0,4K", "FR0,6K", "FR1K", "FR2K", "FR3K", "FR4K", "FR6K", "FR8K", "FR2R0,05", "FR2R0,1", "FR2R0,2", "FR4R0,2", "FR6R0,2", "FR6R1", "FR8R0,2", "FR10R0,3", "FR10R0,5", "FR10R1", "FR12R0,3", "W0,81", "W1", "W1,1", "W1,3", "W1,5", "W3", "W3,3", "W4,2", "W5" }));
        tFrez.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                tFrezActionPerformed(evt);
            }
        });

        tOstrze.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "0,5", "1", "1,5", "2", "3", "3,3", "4", "4,5", "5", "6", "8", "10", "12", "13", "14", "15", "16", "17", "18", "19", "20", "30", "35", "36", "38" }));

        tEfektywna.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "20", "22", "23", "25", "26", "27", "28", "30", "35", "36", "40", "44", "45", " " }));

        tCalkowita.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "40", "45", "50", "55", "57", "58", "60", "62", "63", "64", "65", "70", "72", "75", "80", "83", "85", "90", "100" }));

        tMaterial.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Grafit", "Miedź", "Do 52HRC", "Do 60HRC", "Wszystkie" }));

        label1.setBackground(new java.awt.Color(255, 255, 102));
        label1.setText("Imię");

        label3.setBackground(new java.awt.Color(255, 255, 102));
        label3.setText("Rodzaj Freza");

        label4.setBackground(new java.awt.Color(255, 255, 102));
        label4.setText("Długośc ostrza");

        label5.setBackground(new java.awt.Color(255, 255, 102));
        label5.setText("Długośc efektywna");

        label6.setBackground(new java.awt.Color(255, 255, 102));
        label6.setText("Długość całkowita");

        label7.setBackground(new java.awt.Color(255, 255, 102));
        label7.setText("Materiał obrabiany");

        tblNarzedzia.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null},
                
            },
            new String [] {
                "Imię", "Rodzaj Freza", "Długość ostrza", "Długość efektywna", "Długość całkowita", "Materiał obrabiany", "Data pobrania"
            }
        ));
        tblNarzedzia.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                tblNarzedziaMouseClicked(evt);
            }
        });
        jScrollPane2.setViewportView(tblNarzedzia);

        label2.setBackground(new java.awt.Color(255, 255, 102));
        label2.setName(""); // NOI18N
        label2.setText("Data pobrania");

        tData.setText("textField1");

        bEdit.setText("Edytuj");
        bEdit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                bEditActionPerformed(evt);
            }
        });

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

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(20, 20, 20)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane2)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(bAdd)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(bEdit)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(bDelete)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(tImie, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(label1, javax.swing.GroupLayout.PREFERRED_SIZE, 58, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(18, 18, 18)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(label3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(tFrez, javax.swing.GroupLayout.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(label4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(tOstrze, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(label5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(tEfektywna, javax.swing.GroupLayout.PREFERRED_SIZE, 107, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(label6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(tCalkowita, javax.swing.GroupLayout.PREFERRED_SIZE, 104, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(tMaterial, javax.swing.GroupLayout.PREFERRED_SIZE, 104, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(tData, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(label7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(label2, javax.swing.GroupLayout.DEFAULT_SIZE, 96, Short.MAX_VALUE)))))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(bAdd)
                    .addComponent(bEdit)
                    .addComponent(bDelete))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(label1, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(label3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(label4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(label5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(label6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(label7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(label2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(tImie, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(tFrez, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(tOstrze, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(tEfektywna, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(tCalkowita, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(tMaterial, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 520, Short.MAX_VALUE)
                        .addGap(18, 18, 18))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(tData, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
        );

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

    private void tImieActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code here:
    }                                     

    private void tFrezActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code here:
    }                                     

    private void bAddActionPerformed(java.awt.event.ActionEvent evt) {                                     
     
        model.insertRAW(model.getRowCount(), new Object[]{tImie.getUI(), tFrez.getUI(), tOstrze.getUI(), tEfektywna.getUI(), tCalkowita.getUI(), tMaterial.getUI()});
       
    }                                    

    private void bEditActionPerformed(java.awt.event.ActionEvent evt) {                                      
     model.setValueAt(tImie.setModel(), tblNarzedzia.getSelectedRow(),0);
     model.setValueAt(tFrez.setModel(), tblNarzedzia.getSelectedRow(),1);
     model.setValueAt(tOstrze.setModel(), tblNarzedzia.getSelectedRow(),2);
     model.setValueAt(tEfektywna.setModel(), tblNarzedzia.getSelectedRow(),3);
     model.setValueAt(tCalkowita.setModel(), tblNarzedzia.getSelectedRow(),4);
     model.setValueAt(tMaterial.setModel(), tblNarzedzia.getSelectedRow(),5);
     model.setValueAt(tData.getText(), tblNarzedzia.getSelectedRow(),6);
    }                                     

    private void tblNarzedziaMouseClicked(java.awt.event.MouseEvent evt) {                                          
       tImie.setModel(String.valueOf(model.getValueAt(tblNarzedzia.getSelectedRow(),0)));
       tFrez.setModel(String.valueOf(model.getValueAt(tblNarzedzia.getSelectedRow(),1)));
       tOstrze.setModel(String.valueOf(model.getValueAt(tblNarzedzia.getSelectedRow(),2)));
       tEfektywna.setModel(String.valueOf(model.getValueAt(tblNarzedzia.getSelectedRow(),3)));
       tCalkowita.setModel(String.valueOf(model.getValueAt(tblNarzedzia.getSelectedRow(),4)));
       tMaterial.setModel(String.valueOf(model.getValueAt(tblNarzedzia.getSelectedRow(),5)));
       tData.setText(String.valueOf(model.getValueAt(tblNarzedzia.getSelectedRow(),6)));
    }                                         

    private void bDeleteActionPerformed(java.awt.event.ActionEvent evt) {                                        
        model.removeROW(tblNarzedzia.getSelectedRow());
    }                                       

    /**
     * @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(biblioteka.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(biblioteka.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(biblioteka.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(biblioteka.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 biblioteka().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JButton bAdd;
    private javax.swing.JButton bDelete;
    private javax.swing.JButton bEdit;
    private javax.swing.JDialog jDialog1;
    private javax.swing.JScrollPane jScrollPane2;
    private java.awt.Label label1;
    private java.awt.Label label2;
    private java.awt.Label label3;
    private java.awt.Label label4;
    private java.awt.Label label5;
    private java.awt.Label label6;
    private java.awt.Label label7;
    private javax.swing.JComboBox tCalkowita;
    private java.awt.TextField tData;
    private javax.swing.JComboBox tEfektywna;
    private javax.swing.JComboBox tFrez;
    private javax.swing.JComboBox tImie;
    private javax.swing.JComboBox tMaterial;
    private javax.swing.JComboBox tOstrze;
    private javax.swing.JTable tblNarzedzia;
    // End of variables declaration                   
}
 
0

udało mi się rozwiązać ten problem, ale za to mam kolejny jak sprawić by to co sie wyświetla w programie można było zapisać np. do pliku excel, albo worda tak by to w miarę przechowywało dane jako bazę danych oraz po otwarciu można było odczytać stan sprzed zapisu oraz oraz dodać nowy wpis

0

Jeśli chcesz aby twoje zapisane dane można było odczytać w excel-u zainteresuj się formatem csv. http://pl.wikipedia.org/wiki/CSV_(format_pliku)
Bardzo łatwo można napisać klasy do odczytu i zapisu danych dla tablic w java, wystarczy trochę poszukać na gogle i po temacie.

0

Mam jeszcze inna wizje, a mianowicie by program sam był w stanie zapisać stan zmian w sobie? Istnieje jakiś prosty sposób na zapisanie danych oraz wczytanie ich po otwarciu pliku?

0

To ty ustalasz co ma program robić. Musisz go tak zaprogramować aby podczas startu programu wczytywał dane z pliku, a podczas zamykania zapisywał aktualne dane do pliku. Żeby to zrobić skorzystaj z Properties, to jest bardzo przydatna funkcjonalność w programach. Przy zamykaniu programu programujesz akcję zamknięcia okna JFrame, czyli zapisujesz aktualny stan tablicy z danymi do pliku, a w Properties zapisujesz ścieżkę dostępu do plików z danymi natomiast przy uruchamianiu programu robisz wszystko na odwrót. http://4programmers.net/Java/Properties_-_pliki_tekstowe

0

nie bardzo rozumiem zasadę działa tych plików .properties, bo stworzyłem dwa w programie oraz dodałem do nich kod z linku, który podałeś... jak teraz zaimplementować to do przycisku zapisz by stan programu był zachowany po wyłączeniu go krzyżykiem?

0

Dla głównego okna programu ustaw dodaj WindowListenera

addWindowListener(listener);

W metodzie

public void windowClosing(WindowEvent we){
 ...
}

tego listenera umieść kod zapisujący stan programu.

0

robię tak i nie bardzo działa bo i tak nie zapisuje... załączę cały folder programu może będzie łatwiej w wyjaśnieniu tej kwestii, ewentualnie na kierowanie na to co dokładnie zmienić

0

W kodzie, który zamieściłeś nie ma żadnego WindowListenera.

0

przepraszam jeszcze raz zamieszczam

0

w ogóle nie zrozumiałeś do czego służą propertiesy. Zamieściłeś jakiś kod w plikach properties a tam ma być tylko konfiguracja. Cały zapis/odczyt ma być po stronie aplikacji. Zapis jak napisał @bogdans w metodzie windowClosing a odczyt na starcie aplikacji

0

W Twoim kodzie

            public void windowClosing(WindowEvent w){
                System.exit(0);
            }

W moim poście

W metodzie

public void windowClosing(WindowEvent we){
...
}
tego listenera umieść kod zapisujący stan programu.

Dostrzegasz różnicę?

0

cały czas nie rozumiem o co dokładnie chodzi wyrzuciłem System.exit(0); oraz zmieniłem na (WindowEvent we) ale nadal nie wiem co wpisać w tej metodzie dokladnie, bo sie troche pogubiłem :) może jakas bardziej namacalna podpowiedź?

0

Napisałem na szybko.
Jak uruchomisz program z poziomu NetBeans pojawią się dwa okna. Zmień położenie, rozmiar oraz zawartość okna o nazwie "Testowanie Properties". Następnie wyłącz to okno "X" a później jeszcze raz uruchom cały program i sprawdź czy położenie i rozmiar okna "Testowanie Properties" będzie takie same przed zamknięciem.
Na tym polega praca z Properties.

Jeszcze jedna uwaga. Dodaj funkcjonalność aby można było z pliku wczytywać dane, które masz w JComboBox-ach bo teraz trzeba programowo dodawać dane co nie jest dobrym pomysłem.

Pozdrawiam TJ

0

niestety znowu się pogubiłem i teraz nie wiem jak sprawić by pobieralo mi dane od razu po odczycie i zapisie, ciągle błedy wywalają oraz jak dodać by wszystko działało po nacisnięciu przycisku zapisz

0
michal1311 napisał(a):

niestety znowu się pogubiłem i teraz nie wiem jak sprawić by pobieralo mi dane od razu po odczycie i zapisie, ciągle błedy wywalają oraz jak dodać by wszystko działało po nacisnięciu przycisku zapisz

Po tym co zobaczyłem, jak używasz klasy OdczytZapis uważam że nie masz bladego pojęcia co robisz.
Zadanie na dziś to nauka co to jest klasa, metody i pola. Przekładu chyba faktycznie nie zrozumiałeś.
Pozdrawiam TJ

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