Hallo,
ich hänge hier an einem Problem und komme irgendwie net weiter. Ich hab jetzt schon rumgesucht aber irgendwie
find ich keine Lösung obwohl mein Problem eigentlich total simpel ist.
Ich hab eine JTable in welcher ich ein TableModel einfüge. Mein Problem ist jetzt der TableModelListener. Ich hab keine Ahnung wie ich es jetzt schaffe das das JTable die neuen Daten anzeigt.
Hier mal das was ich bis jetzt zusammengekriegt habe:
Mit der Methode loadNewGenre lade ich die neuen Daten ins ArrayList. Aber wie bringe ich jetzt das JTable dazu diesen neuen Daten auch anzuzeigen? Ich steh momentan voll auf dem Schlauch!?!
Gruß Alex
ich hänge hier an einem Problem und komme irgendwie net weiter. Ich hab jetzt schon rumgesucht aber irgendwie
find ich keine Lösung obwohl mein Problem eigentlich total simpel ist.
Ich hab eine JTable in welcher ich ein TableModel einfüge. Mein Problem ist jetzt der TableModelListener. Ich hab keine Ahnung wie ich es jetzt schaffe das das JTable die neuen Daten anzeigt.
Hier mal das was ich bis jetzt zusammengekriegt habe:
Code:
public class CTableModel extends AbstractTableModel implements TableModelListener
{
private static final long serialVersionUID = 1L;
private static String [] column_names = {"Station","Playing"};
private static ArrayList<CStation> al_stations = new ArrayList<CStation>();
private static Vector<TableModelListener> tm_listener = new Vector<TableModelListener>();
public static CTableModelShoutcast tb_shoutcast_ref;
CTableModel()
{
addTableModelListener(this);
loadNewGenre("Alternative");
tb_shoutcast_ref = this;
}
public void addTableModelListener(TableModelListener arg0)
{
tm_listener.add(arg0);
}
public Class<?> getColumnClass(int arg0) {
return column_names.getClass();
}
public String getColumnName(int column) {
return column_names[column];
}
public Object getValueAt(int arg0, int arg1) {
//System.out.println("arg0 = "+arg0+" arg1 = "+arg1);
switch (arg1)
{
case 0 : return al_stations.get(arg0).getName();
case 1 : return al_stations.get(arg0).getPlaying();
}
return null;
}
public boolean isCellEditable(int arg0, int arg1)
{
return false;
}
public void removeTableModelListener(TableModelListener arg0)
{
tm_listener.remove(arg0);
}
public void setValueAt(Object content, int row, int column)
{
}
public int getColumnCount()
{
return column_names.length;
}
public int getRowCount()
{
return al_stations.size();
}
public void loadNewGenre(String genre)
{
try
{
al_stations = CDatabase.getGenreStations(genre);
System.out.println(genre);
}
catch (Exception e)
{
System.out.println("Fehler bei loadNewGenre");
System.out.println(e.getMessage());
}
fireTableDataChanged();
}
public void tableChanged(TableModelEvent arg0)
{
}
}
Mit der Methode loadNewGenre lade ich die neuen Daten ins ArrayList. Aber wie bringe ich jetzt das JTable dazu diesen neuen Daten auch anzuzeigen? Ich steh momentan voll auf dem Schlauch!?!
Gruß Alex