Witam!
Mam problem z wyświetlaniem zawartości bazy danych w tabeli.
Funkcja pobierająca dane z bazy:
ArrayList seeZwierze() {
connect();
tabela="Zwierze";
ArrayList <Zwierze> list = new ArrayList<Zwierze>();
try {
ResultSet res = stat.executeQuery("SELECT * FROM "+tabela);
while(res.next()){
String nazwa = res.getString("nazwa");
String lacinska = res.getString("lacinska");
String kolor = res.getString("kolor");
int ilosc = res.getInt("ilosc");
double cena = res.getDouble("cena");
list.add(new Zwierze(nazwa,lacinska, kolor, ilosc, cena));
}
return list;
} catch (SQLException ex) {
Logger.getLogger(Database.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
Wyświetlenie tabelki:
private void bZwierzetaActionPerformed(java.awt.event.ActionEvent evt) {
columnNames = new String[] {"Nazwa", "Nazwa Łac", "Kolor", "Ilość", "Cena"};
ArrayList <Zwierze> ZwierzeTab = new ArrayList<Zwierze>();
ZwierzeTab = conn.seeZwierze();
data = new Object[ZwierzeTab.size()][5];
for (int i = 0; i<ZwierzeTab.size(); i++){
data[i][0] = ZwierzeTab.get(i).getName();
data[i][1] = ZwierzeTab.get(i).getNazLac();
data[i][2] = ZwierzeTab.get(i).getColor();
data[i][3] = ZwierzeTab.get(i).getAmount();
data[i][4] = ZwierzeTab.get(i).getPrice();
}
tabelka.setModel(new DefaultTableModel(data, columnNames));
}
Deklaracje:
public class Wyswietl extends javax.swing.JFrame {
Database conn;
Object[][] data = null;
String[] columnNames = " ";
Co robię źle? Jeszcze niedawno swing, jak i bazy danych to był dla mnie kosmos, a teraz niewiele się zmieniło, wciąż mało wiem. Proszę o pomoc.
Nie dzieje się nic, a kompilator wyświetla:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at sklepzoologiczny.Wyswietl.bZwierzetaActionPerformed(Wyswietl.java:129)
at sklepzoologiczny.Wyswietl.access$000(Wyswietl.java:21)
at sklepzoologiczny.Wyswietl$1.actionPerformed(Wyswietl.java:52)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
...
...i cała litania
NullPointerException o ile się nie mylę mówi, że mam jakiś wskaźnik pokazujący na nulla, którego później próbuję użyć. Jeśli tak, to przy pobieraniu z bazy jest jakiś błąd i nie zapisuje danych na listę.