Servus,
ich habe eine JList mit einem DefaultListModel bestückt und auch mit einem JScrollPane versehen, so weit so gut. Jetzt lese ich Daten ein welche einen Timestamp enthalten und markiere dann den Satz welcher der aktuellen Zeit am nähesten ist. Soweit auch kein Problem.
Da der markierte Datensatz aber meistens außerhalb des sichtbaren Bereiches liegt muss ich dort ja hin scrollen. Das mache ich mit ensureIndexIsVisible (+ ein paar Zeilen drauf so das er nicht ganz unten steht)
Das funktioniert jetzt allerdings nicht immer. Der Eintrag wird zwar selektiert aber es wird nicht komplett zum Eintrag gescrollt. Manchmal gehts manchmal nicht.
Wie gesagt selektiert wird immer richtig nur nicht "gescrollt"
Ach ja clearen tue ich natürlich die Liste vorher
this.listenModellHash.clear();
Hatte auch schon versucht ensureIndexIsVisible mehrmals hintereinander aufzurufen, der Bug bleibt manchmal
ich habe eine JList mit einem DefaultListModel bestückt und auch mit einem JScrollPane versehen, so weit so gut. Jetzt lese ich Daten ein welche einen Timestamp enthalten und markiere dann den Satz welcher der aktuellen Zeit am nähesten ist. Soweit auch kein Problem.
Da der markierte Datensatz aber meistens außerhalb des sichtbaren Bereiches liegt muss ich dort ja hin scrollen. Das mache ich mit ensureIndexIsVisible (+ ein paar Zeilen drauf so das er nicht ganz unten steht)
Das funktioniert jetzt allerdings nicht immer. Der Eintrag wird zwar selektiert aber es wird nicht komplett zum Eintrag gescrollt. Manchmal gehts manchmal nicht.
Code:
this.getContentPane().setLayout(null);
.
.
.
this.HashListScrollPane = new JScrollPane();
this.listenModellHash = new DefaultListModel<String>();
this.HashList = new JList<String>(listenModellHash);
this.HashList.setFont(new Font("Courier New",Font.PLAIN,18));
this.HashListScrollPane.setViewportView(HashList);
listenModellHash.addElement("Please select a HASH");
listenModellHash.addElement("and click on a Button");
listenModellHash.addElement("to show the result");
HashListScrollPane.setBounds(781, 120, 605, 800);
TabBar_Tab3.add(HashListScrollPane);
.
.
.
// zum scrollen nachdem die Daten verarbeitet wurden
this.HashList.setSelectedIndex((Integer) HashListScrollToSelectedIndex+2);
this.HashList.ensureIndexIsVisible((Integer) HashListScrollToSelectedIndex+32);
// Hier hole ich die "Scrollposition" her für HashListScrollToSelectedIndex
if(parsedDate1.getTime() < parsedDate2.getTime()){
this.HashListScrollToSelectedIndex = this.listenModellHash.getSize()-1;
}else{
this.dontParseTimeTxTda = true;
}
Wie gesagt selektiert wird immer richtig nur nicht "gescrollt"
Ach ja clearen tue ich natürlich die Liste vorher
this.listenModellHash.clear();
Hatte auch schon versucht ensureIndexIsVisible mehrmals hintereinander aufzurufen, der Bug bleibt manchmal