Błędy po naciśnięciu przycisku

0

Mam pewien problem i nie wiem jak go naprawić. Błąd wyskakuje dopiero wtedy kiedy chcę użyć przycisku do wczytania Tablicy

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at com.company.Projekt$7.actionPerformed(Projekt.java:399)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
Wczytaj.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {

                DataInputStream wejscie = null;
                DataOutputStream out = null;

                try {


                    wejscie = new DataInputStream(new BufferedInputStream(new FileInputStream("C:\\Users\\Komp\\Desktop\\Ala Ma kota.txt")));

                    //TABlista_wyrobow[liczba_wyrobow] = new JZamowienie;


                    for (int k = 0; k <TABlista_wyrobow.length; k++) {
                        TABlista_wyrobow[liczba_wyrobow].opis_wyrobu = wejscie.readUTF();                                          <399
                        TABlista_wyrobow[liczba_wyrobow].dlugosc = (double) wejscie.readFloat();
                        TABlista_wyrobow[liczba_wyrobow].szerokosc = (double) wejscie.readFloat();
                        TABlista_wyrobow[liczba_wyrobow].wysokosc = (double) wejscie.readFloat();
                        TABlista_wyrobow[liczba_wyrobow].ilosc_polek = (int) wejscie.readFloat();
                        TABlista_wyrobow[liczba_wyrobow].cena_materialu = (double) wejscie.readFloat();
                        TABlista_wyrobow[liczba_wyrobow].do_zaplaty = (double) wejscie.readFloat();

                        DLMlista_wyrobow.addElement(TABlista_wyrobow[liczba_wyrobow].opis_wyrobu +
                                " : długość: " + TABlista_wyrobow[liczba_wyrobow].dlugosc +
                                ", szerokość: " + TABlista_wyrobow[liczba_wyrobow].szerokosc +
                                ", wysokość: " + TABlista_wyrobow[liczba_wyrobow].wysokosc +
                                ", ilość półek: " + TABlista_wyrobow[liczba_wyrobow].szuflady() +
                                ", cena materiału za m^2 = " + TABlista_wyrobow[liczba_wyrobow].cena_materialu +
                                ", wynagrodzenie za m^2 = " + TABlista_wyrobow[liczba_wyrobow].do_zaplaty);

                        liczba_wyrobow++;

                        for (int i = 0; i < liczba_wyrobow; i++) {
                            suma_m2 = suma_m2 + TABlista_wyrobow[i].ile_m2();
                        }

                        for (int i = 0; i < liczba_wyrobow; i++) {
                            materialy = materialy + TABlista_wyrobow[i].ile_kasy();
                        }

                        for (int i = 0; i < liczba_wyrobow; i++) {
                            zarobek = zarobek + TABlista_wyrobow[i].ile_zarobku();
                        }

                        Lsuma.setText(NFzaokraglanie.format(suma_m2) + " m2 / " + NFzaokraglanie.format(materialy) + " zł. " + NFzaokraglanie.format(zarobek) + " zł ");
                    }

                    out.close(); // zamykamy strumień

                } catch (IOException ex) {
                    ex.printStackTrace();
                }


            }
        }); 
0

Na oko tam wszędzie powinno być TABlista_wyrobow[k]

0

Poprawiłem tamto na [K] i pozwoliłem dodać sobie

         double a=0,b=0,c=0,d=0,q=0;
                    String w = " ";
                    TABlista_wyrobow[liczba_wyrobow] = new JZamowienie(a,b,c,w,d,q); 

przed for i działą teraz wczytywanie lecz mam teraz taki błąd java.io.EOFException

0

Wracam do ostatniego błędu.

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
ponieważ mogę uzupełnić tylko 0 tablice a t1, t2 .... wyskakuje mi ciągle to samo.

0

No to łaskawie użyj debuggera, bo nikt tego za ciebie robić nie będzie. Postaw breakpoint tam gdzie leci wyjątek, odpal program w debug mode i jak się zatrzyma to popatrz co i czemu jest tam nullem.

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