JScrollPane, graphics

0

Witam, Na początku przedstawię moją sytuację, otóż. Mam klasę drawingPane dziedziczącą po JPanelu i w niej metode paintComponent(Graphics g)
W tej metodzie znajduje się rysowanie zdjęcia oraz rysowanie bardzo wielu obietów- okręgi.
Następnie mam stworzone JScrollPane w którym jako komponent jest konstruktor klasy drawingPane.

Wszystko działa. Ale jest problem gdy nałożę warstwę rysunków to przesuwanie JScrollem nie jest płynne, gdyż zbyt dużo punktów ma do przeliczenia przy każdym wywałaniu tej metody.

Zastanawiałem się czy może w takim razie odświeżać zdjęcie, a reszta będzie jako statyczny obiekt który się nie zmienia.
Ale gdy nie zrobiłem repainta to po prostu po każdym przesuwaniu suwakiem gubił fragmenty wyrsowanych obiektów.
A więc moje pytanie brzmi jak do tego podejść by działało to płynnie?

0

Zrób sobie obiekt klasy BufferedImage (o ile dobrze pamiętam nazwę), który będziesz trzymał w instancji drawingPanel (btw, nazwy klas powinny zaczynac sie wielkiej litery) i w paintComponent po prostu rysuj to, co znajduje sie na tym BufferedImage. A gdy zajdzie potrzeba narysowania obiektow na obrazku, to rysuj to na tym BufferedImage.

0

Czy mógłbyś mniej więcej pokazać jak to będzie wyglądało. Tzn jak rysować na bufferImage i czy w takim przypadku, jeśli JScrollPane będzie zawierał komponent klasy DrawingPanel to tylko zdjęcie mi odświeży a rysunków już nie?

1 użytkowników online, w tym zalogowanych: 0, gości: 1