Hi Leute !
Ich habe mir eine Klasse geschrieben die das DefaultTableModel erweitert. In meiner Hauptklasse("MainMenu") erstelle ich ein neues JTable mit meinem neuen TracklistTableModel. Das compilen funktioniert noch, aber beim ausführen bekomme ich folgende Fehlermeldung:
Hier der Ausschnitt des Codes aus "MenuMenu.java":
Und hier noch "TracklistTableModel.java":
Warum bekomme ich eine NullPointerException ?
lg
Ich habe mir eine Klasse geschrieben die das DefaultTableModel erweitert. In meiner Hauptklasse("MainMenu") erstelle ich ein neues JTable mit meinem neuen TracklistTableModel. Das compilen funktioniert noch, aber beim ausführen bekomme ich folgende Fehlermeldung:
Code:
>java Main
Exception in thread "main" java.lang.NullPointerException
at dnb.TracklistTableModel.getRowCount(TracklistTableModel.java:17) <<<<<<<<<<<
at javax.swing.table.DefaultTableModel.setDataVector(DefaultTableModel.java:194)
at javax.swing.table.DefaultTableModel.<init>(DefaultTableModel.java:98)
at javax.swing.table.DefaultTableModel.<init>(DefaultTableModel.java:80)
at javax.swing.table.DefaultTableModel.<init>(DefaultTableModel.java:60)
at dnb.TracklistTableModel.<init>(TracklistTableModel.java:11)
at dnb.MainMenu.<init>(MainMenu.java:26) <<<<<<<<<<<<<<<
at Main.main(Main.java:14)
Code:
package dnb;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.text.*;
import java.io.*;
import java.util.*;
import java.lang.*;
public class MainMenu extends JFrame implements ActionListener {
private ArrayList tracklist = new ArrayList();
public MainMenu() {
String filename = "m:/tracklist.trs";
getTracks(filename);
.........
TracklistTableModel myTableModel = new TracklistTableModel(); //Zeile 26
JTable table = new JTable();
myTableModel.setTracklistData(tracklist);
table.setModel( myTableModel );
.............
}
}
Code:
package dnb;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
import java.text.*;
import java.util.*;
import java.lang.*;
public class TracklistTableModel extends DefaultTableModel {
private ArrayList data;
private final String columnNames[] = { "Rating", "Artist" , "Title" };
public int getRowCount() {
return data.size(); // Zeile 17
}
public int getColumnCount() {
return columnNames.length;
}
public String getColumnName(int column) {
return columnNames[column];
}
public void setTracklistData(ArrayList toset) {
data = toset;
fireTableDataChanged();
}
public Object getValueAt(int row, int col) {
track value = (track)data.get(row);
if (columnNames[col].equals("Rating")) return Integer.toString(value.Rating);
else if (columnNames[col].equals("Artist")) return value.Artist;
else if (columnNames[col].equals("Title")) return value.Title;
else return "NOTHING";
}
}
lg