Hallo,
ich dreh mich hier gerade im Kreis bei einem Problem, was eigendlich garkeins sein dürfte -.-.
Ich habe ein recht Komplexes GUI mit verschachtelten JSplitPanes, die wiederum in JPanels und/oder Tabs liegen. Mit verschachtelt meine ich, dass ich jeweils in einer Splitpane eine weitere habe.
Soweit so gut.
In einer der Splitpanes habe ich eine JList welche dazu dient geladene Datensätze darzustellen. Und genau hier ist mein Problem.
So lang ich die JList "hardcoded" initialisiere, mit einem Array an Elementen in dieser, so werden diese Korrekt im GUI dargestellt (habe einen eigenen ListCellRenderer). Diese Liste ist dann aber statisch und es lassen sich keine Elemente hinzufügen/entfernen.
Aus diesem Grund habe ich ein eigenes ListModel geschrieben (habs sowohl mit nem AbstractListModel als auch einem DefaultListModel probiert mit selbem resultat -.-).
Hier mal ein Auszug aus dem Model:
Wenn ich nun aber zur Laufzeit elemente in dieses einfüge, erscheinen die einfach nicht im GUI, egal wie oft ich repaint, validate oder sonst was calle.
Das verwendete Dataset Object ist in diesem Fall nix weiter als eine Klasse die "LinkedList-Class" erweitert.
Jemand ne Idee wo mein Denkfehler ist? Wenn ich mir die ListModel examples bei Oracle ansehe, sieht das total simpel aus (allerdings arbeiten die auch nur mit 0815 Strings...).
Die JList bleibt immer leer, allerdings sind die Elemente auf jeden fall nach dem Hinzufügen vorhanden, da ich sie mir manuel via System.outs ausgeben kann (aus der im Model verwendeten Liste!).
ich dreh mich hier gerade im Kreis bei einem Problem, was eigendlich garkeins sein dürfte -.-.
Ich habe ein recht Komplexes GUI mit verschachtelten JSplitPanes, die wiederum in JPanels und/oder Tabs liegen. Mit verschachtelt meine ich, dass ich jeweils in einer Splitpane eine weitere habe.
Soweit so gut.
In einer der Splitpanes habe ich eine JList welche dazu dient geladene Datensätze darzustellen. Und genau hier ist mein Problem.
So lang ich die JList "hardcoded" initialisiere, mit einem Array an Elementen in dieser, so werden diese Korrekt im GUI dargestellt (habe einen eigenen ListCellRenderer). Diese Liste ist dann aber statisch und es lassen sich keine Elemente hinzufügen/entfernen.
Aus diesem Grund habe ich ein eigenes ListModel geschrieben (habs sowohl mit nem AbstractListModel als auch einem DefaultListModel probiert mit selbem resultat -.-).
Hier mal ein Auszug aus dem Model:
Java:
public class DatasetListModel extends AbstractListModel {
/**
* Class Variables
*/
private static final long serialVersionUID = 1000L;
private Dataset list;
public DatasetListModel(Dataset list) {
this.list = list;
}
public int getSize() {
return list.size();
}
public Object getElementAt(int index) {
return list.get(index);
}
public void addElement(Layer l) {
this.list.add(l);
}
public Dataset getModelList() {
return this.list;
}
}
Wenn ich nun aber zur Laufzeit elemente in dieses einfüge, erscheinen die einfach nicht im GUI, egal wie oft ich repaint, validate oder sonst was calle.
Das verwendete Dataset Object ist in diesem Fall nix weiter als eine Klasse die "LinkedList-Class" erweitert.
Jemand ne Idee wo mein Denkfehler ist? Wenn ich mir die ListModel examples bei Oracle ansehe, sieht das total simpel aus (allerdings arbeiten die auch nur mit 0815 Strings...).
Die JList bleibt immer leer, allerdings sind die Elemente auf jeden fall nach dem Hinzufügen vorhanden, da ich sie mir manuel via System.outs ausgeben kann (aus der im Model verwendeten Liste!).
Zuletzt bearbeitet: