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
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