Hallo,
ich habe ein recht merkwürdiges Problem. Und zwar schreibe ich gerade an einer Software die eine JList verwendet. Das ListModel muss ich ab und zu mal verändern und dachte es würde reichen JTable.revalidate und JTable.repaint aufzurufen. Das klappt auch manchmal. Wenn ich allerdings vorher einen JDialog öffne sehe ich keinen Eintrag mehr in der JList. Auch nicht nachdem ich den JDialog geschlossen habe. Wenn ich das ListModel ohne JDialog verändere (beim Löschen von Objekten) dann klappt alles prima. Ist wahrscheinlich nur ein blöder Fehler, aber ich sehe im Moment echt nicht das Problem.
Das funktioniert:
Und das funktioniert nicht:
Was mir gerade noch aufgefallen ist: Wenn ich Button 1 drücke (also einen Host lösche) und danach Button 2 funktioniert auch alles wunderbar.
Schonmal Danke im Voraus!
ich habe ein recht merkwürdiges Problem. Und zwar schreibe ich gerade an einer Software die eine JList verwendet. Das ListModel muss ich ab und zu mal verändern und dachte es würde reichen JTable.revalidate und JTable.repaint aufzurufen. Das klappt auch manchmal. Wenn ich allerdings vorher einen JDialog öffne sehe ich keinen Eintrag mehr in der JList. Auch nicht nachdem ich den JDialog geschlossen habe. Wenn ich das ListModel ohne JDialog verändere (beim Löschen von Objekten) dann klappt alles prima. Ist wahrscheinlich nur ein blöder Fehler, aber ich sehe im Moment echt nicht das Problem.
Das funktioniert:
Code:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String hostname = (String)this.jList1.getSelectedValue();
this.store.deleteHost(hostname);
this.hlmodel.setList(this.store.loadAllHosts()); //hier übergebe ich dem ListModel eine ArrayList aus der die Daten kommen
this.refreshLists(); //hier wird revalidate und repaint aufgerufen
}
Und das funktioniert nicht:
Code:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
AddHostDialog dialog = new AddHostDialog(this,true,this.store);
dialog.setVisible(true); //Im JDialog wird das Objekt store verändert.
this.hlmodel.setList(this.store.loadAllHosts());
this.refreshLists();
}
Schonmal Danke im Voraus!
Zuletzt bearbeitet: