Guten Tag,
ich habe hier gerade ein kleines Problem, und finde die Lösung einfach nicht (die wahrscheinlich recht simpel ist):
Ich habe eine JList.
Ich habe ein Controller der Sprachen verwaltet. Dieser Kontroller kann Sprachen hinzufügen und löschen. Desweiteren soll er ein Modell für die Liste zurück geben können.
Dann "habe" ich einen LangListModel. Dieses soll eigentlich nur die aktuellen Daten des Kontrollers ausgeben, sprich wenn ich eine Sprache hinzufüge soll die JList dies anzeigen. Das gleiche ist beim löschen zu tun. Jedoch bekomme ich es nicht hin das die Liste sich aktuallisiert.
Wo von soll ich mein LangListModel erben lassen? DefaultListModel?
Es sieht imo so aus:
Die Liste:
Und ein Teil des Kontrollers:
Wie bekomme ich nun die Liste aktualisiert, wenn ich von einem anderen Dialog her eine neue Sprache einfüge?`
mfg. Dagobert
ich habe hier gerade ein kleines Problem, und finde die Lösung einfach nicht (die wahrscheinlich recht simpel ist):
Ich habe eine JList.
Ich habe ein Controller der Sprachen verwaltet. Dieser Kontroller kann Sprachen hinzufügen und löschen. Desweiteren soll er ein Modell für die Liste zurück geben können.
Dann "habe" ich einen LangListModel. Dieses soll eigentlich nur die aktuellen Daten des Kontrollers ausgeben, sprich wenn ich eine Sprache hinzufüge soll die JList dies anzeigen. Das gleiche ist beim löschen zu tun. Jedoch bekomme ich es nicht hin das die Liste sich aktuallisiert.
Wo von soll ich mein LangListModel erben lassen? DefaultListModel?
Es sieht imo so aus:
Java:
import javax.swing.DefaultListModel;
@SuppressWarnings("serial")
public class LangListModel extends DefaultListModel{
final LanguageController lc;
public LangListModel(final LanguageController lc){
super();
this.lc = lc;
}
@Override
public Object getElementAt(int index) {
return lc.getElement(index);
}
@Override
public int getSize() {
return lc.size();
}
}
Die Liste:
Java:
DefaultListModel model = mc.getLanguageController().getModel(); // get the model for the list
languageList = new JList(model);
languageList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
languageList.setLayoutOrientation(JList.VERTICAL);
languageList.setVisibleRowCount(5);
Java:
public class LanguageController extends Controller{
private final DefaultListModel model;
...
this.model = new LangListModel(this);
....
public void addLanguage(final String name, final String shortcut, final String imgPath){
Language newL = new Language(name, shortcut, imgPath);
LanguageValidator.validateLanguage(newL);
lang.add(newL);
}
public DefaultListModel getModel() {
return model;
}
}
Wie bekomme ich nun die Liste aktualisiert, wenn ich von einem anderen Dialog her eine neue Sprache einfüge?`
mfg. Dagobert