PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Java] Linien verschmieren beim Scrollen


minos5000
2007-12-24, 11:56:07
Hi,

ich habe das Problem, daß in einem JPane ein paar Linien außerhalb des Sichtbereichs gezeichnet werden. Deswegen liegt das JPane in einem JScrollPane aber und wenn ich auf die nicht sichtbaren Linien zuscrolle verschmieren die, je nach Scrollgeschwindigkeit, zu einer Fläche oder zu vielen Linien. Erst wenn ich das Fenster minimiere und wieder hervorhole, werden die Linien korrekt dargestellt.
Ich dachte mir, ich kann das Problem beseitigen, wenn ich einen Listener auf die Scrollbalken setze, der das Panel bei jeder Aktion neu zeichnen lässt, siehe Code unten. Das scheint auch eine Verbesserung gebracht zu haben, aber nur leicht und nicht zuverlässig.


scroller.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener() {
public void adjustmentValueChanged(AdjustmentEvent e) {
System.out.println("value changed");
drawingPane.revalidate();
drawingPane.repaint();
}
});


Kann mir jmd sagen, was ich anstellen muß, damit der Inhalt korrekt angezeigt wird.



vg,
minos

minos5000
2007-12-24, 14:04:12
Habe das Problem inzwischen lösen können. Es lag schlicht daran, daß ich repaint() nicht auf die ScrollPane sondern auf das darin eingebettete JPane angewandt hatte. Nun funktionierts wie gewünscht.