Hallo
Ich hab da ein sinnfreies Problem zu beheben.. Ich hab eine Tabelle (SearchPane), deren Zellen (TableCell), je nach Resultat der Datenbank, editierbar werden oder eine bestimmte Farbe erhalten.
Weiter hat es einen CellEditingListener (abgeleitet von AbstractCellEditingListener), der auf Enter reagiert und in die nächste fokussier- und editierbare Zelle springt und bei neuen Einträgen gleich noch eine DB-Prozedur aufruft, die die Daten abspeichert.
Nun habe ich einen Fall, in dem ich von einer editierbaren Zelle irgendwo in der Mitte in die letzte Zelle springen kann, sprich die Zelle in der letzten Zeile. Wenn ich jetzt das Fenster soweit verkleinere, dass der Fensterrand knapp unter der letzten Zeile ist und dann von der Zelle in der Mitte zur letzten Zelle springen möchte, dann sehe ich plötzlich die letzte Zeile doppelt, bzw leicht verschoben über sich selbst.
Die erste Zeile der Tabelle ist dann im Nirwana verschwunden. Anders ausgedrückt wurde die ganze Tabelle um eine Zeile nach oben "verschoben", was die erste Zeile verdeckte.
Wenn ich nun mit der Maus aus dem Fenster gehe bzw. wieder rein, dann wird die Tabelle wieder korrekt angezeigt. Daher kam ich zum Schluss, dass es irgendwie nicht richtig reloaded wird oder sowas in der Richtung. Darauf habe ich versucht, diverse Methoden auf das SearchPane anzuwenden. z.B. repaint(), revalidate(), updateUI().. einfach alles, was irgend einen Bezug zum Zeichnen der Tabelle haben könnte.
Das Problem tritt jedoch in jedem Fall auf.
Hier noch mit Screenshot erläutert:
Ich befinde mich in der Zelle im mittleren Bereich:
Nun möchte ich mit Enter in die unterste Zelle springen, folgender Effekt:
Lässt sich das vermeiden? Wenn ja, wie am besten?
p.s ich zähle mich nach ca 2.5 jahren immer noch zu den blutigsten anfängern..
Ich hab da ein sinnfreies Problem zu beheben.. Ich hab eine Tabelle (SearchPane), deren Zellen (TableCell), je nach Resultat der Datenbank, editierbar werden oder eine bestimmte Farbe erhalten.
Weiter hat es einen CellEditingListener (abgeleitet von AbstractCellEditingListener), der auf Enter reagiert und in die nächste fokussier- und editierbare Zelle springt und bei neuen Einträgen gleich noch eine DB-Prozedur aufruft, die die Daten abspeichert.
Nun habe ich einen Fall, in dem ich von einer editierbaren Zelle irgendwo in der Mitte in die letzte Zelle springen kann, sprich die Zelle in der letzten Zeile. Wenn ich jetzt das Fenster soweit verkleinere, dass der Fensterrand knapp unter der letzten Zeile ist und dann von der Zelle in der Mitte zur letzten Zelle springen möchte, dann sehe ich plötzlich die letzte Zeile doppelt, bzw leicht verschoben über sich selbst.
Die erste Zeile der Tabelle ist dann im Nirwana verschwunden. Anders ausgedrückt wurde die ganze Tabelle um eine Zeile nach oben "verschoben", was die erste Zeile verdeckte.
Wenn ich nun mit der Maus aus dem Fenster gehe bzw. wieder rein, dann wird die Tabelle wieder korrekt angezeigt. Daher kam ich zum Schluss, dass es irgendwie nicht richtig reloaded wird oder sowas in der Richtung. Darauf habe ich versucht, diverse Methoden auf das SearchPane anzuwenden. z.B. repaint(), revalidate(), updateUI().. einfach alles, was irgend einen Bezug zum Zeichnen der Tabelle haben könnte.
Das Problem tritt jedoch in jedem Fall auf.
Hier noch mit Screenshot erläutert:
Ich befinde mich in der Zelle im mittleren Bereich:
Nun möchte ich mit Enter in die unterste Zelle springen, folgender Effekt:
Lässt sich das vermeiden? Wenn ja, wie am besten?
p.s ich zähle mich nach ca 2.5 jahren immer noch zu den blutigsten anfängern..