Guten Morgen!
Ich habe jetzt eine halbe Stunde Posts über ähnliche Probleme gelesen, aber nichts gefunden was hilft. Erschlagt mich, sollte ich etwas überlesen haben. ^^' :rtfm:
Problem in Worten:
Eine Methode leert das DefaultListModel einer JList. Danach wird es per Schleife wieder gefüllt und per setModel(defModel) wieder auf die JList geklatscht. Klappt wunderbar - nur nicht immer. Auf der Gui wird die gefüllte Jlist angezeigt, bei der nächsten Aktualisierung auch, bei irgend einer dann nicht mehr (JList wird winzig klein und leer angezeigt). Bei der nächsten Aktualisierung wirds es dann wieder angezeigt... Absolut Random. :bahnhof:
Problem in Quelltext:
(Anmerkung: Bitte fragt nicht, warum ich die Werte aus dem Vector in eine Array lese, muss so sein.)
Anmerkung: Ich habe Kommentare stehen lassen von anderen Methoden, die ich hier im Forum fand und alle leider nicht zum Ergebnis führten. Es existiert zum Thest ein Thread, der diese Methode aller 2 Sekunden mit der selben Clientliste (Vector) startet. Ergebnis des Threads: Man kann schön sehen, wie die Liste verschwindet, auftaucht, verschwindet... aber NICHT im 2-Sekunden-Rhythmus! Mal steht die Liste 10 Sekunden, mal nur 2, dann wieder 4... verschwindet, taucht wieder auf... ich werd noch wahnsinnig...
Per System.out.println() lasse ich mir im selben Thread auch den Inhalt der Array ausgeben... die Daten sind definitiv ständig da, das Model bzw. die Liste ist datentechnisch gefüllt. Nur die Anzeige spinnt.
liebe Grüße
Roderick (Azubi ^^)
Ich habe jetzt eine halbe Stunde Posts über ähnliche Probleme gelesen, aber nichts gefunden was hilft. Erschlagt mich, sollte ich etwas überlesen haben. ^^' :rtfm:
Problem in Worten:
Eine Methode leert das DefaultListModel einer JList. Danach wird es per Schleife wieder gefüllt und per setModel(defModel) wieder auf die JList geklatscht. Klappt wunderbar - nur nicht immer. Auf der Gui wird die gefüllte Jlist angezeigt, bei der nächsten Aktualisierung auch, bei irgend einer dann nicht mehr (JList wird winzig klein und leer angezeigt). Bei der nächsten Aktualisierung wirds es dann wieder angezeigt... Absolut Random. :bahnhof:
Problem in Quelltext:
(Anmerkung: Bitte fragt nicht, warum ich die Werte aus dem Vector in eine Array lese, muss so sein.)
Java:
public void createClientList(ClientListe cl)
{
//Die Clientliste spuckt den Vector aus. Anhand dessen Inhalt
//werden die beiden Arrays dimensioniert.
System.out.println("Lese Vector aus empfangener Clientliste ein.");
Vector<AnzeigeNameID> namensListeVector = cl.getClients();
System.out.println("Erstelle Arrays mit passender Größe.");
namensListeArray = new String[namensListeVector.size()];
idListe = new int[namensListeVector.size()];
//Für jeden Eintrag im Vector wird aus dem dort befindlichen Objekt
//der Name und die passende ID in die Arrays geschrieben.
for(int i = 0; i < namensListeVector.size(); i++)
{
System.out.println("Übertrage Namen und IDs in Arrays.");
namensListeArray[i] = namensListeVector.elementAt(i).getNickName();
idListe[i] = namensListeVector.elementAt(i).getId();
}
//Nicht die JList, sondern deren Model wird hier geleert und wieder befüllt.
System.out.println("Entferne alte Namen in der angezeigten Liste.");
//defModel.removeAllElements();
defModel.clear();
//Passe das Model zur Sicherheit korrekt an
defModel.setSize(namensListeArray.length);
//clientListe = new JList(defModel);
for(int i = 0; i < namensListeArray.length; i++)
{
System.out.println("Füge Namen in die Liste ein: " + namensListeArray[i] + ", ID: " + idListe[i] + " an Position: " + i);
defModel.add(i, namensListeArray[i]);
//defModel.addElement(namensListeArray[i]);
//defModel.insertElementAt(namensListeArray[i], i);
}
System.out.println("Füge Model neu ein, zeichne Liste und Fenster neu.");
clientListe.setModel(defModel);
//clientListe.revalidate();
//clientListe.repaint();
//fenster.repaint();
//fenster.pack();
}
Anmerkung: Ich habe Kommentare stehen lassen von anderen Methoden, die ich hier im Forum fand und alle leider nicht zum Ergebnis führten. Es existiert zum Thest ein Thread, der diese Methode aller 2 Sekunden mit der selben Clientliste (Vector) startet. Ergebnis des Threads: Man kann schön sehen, wie die Liste verschwindet, auftaucht, verschwindet... aber NICHT im 2-Sekunden-Rhythmus! Mal steht die Liste 10 Sekunden, mal nur 2, dann wieder 4... verschwindet, taucht wieder auf... ich werd noch wahnsinnig...
Per System.out.println() lasse ich mir im selben Thread auch den Inhalt der Array ausgeben... die Daten sind definitiv ständig da, das Model bzw. die Liste ist datentechnisch gefüllt. Nur die Anzeige spinnt.
liebe Grüße
Roderick (Azubi ^^)