Swing, rysowanie na JPanel

Swing, rysowanie na JPanel
LU
  • Rejestracja: dni
  • Ostatnio: dni
0

witam.

mam takie pytanie, pisze w Swingu program i chce rysowac. Wybralem (nie wiem czy slusznie) do tego komponent JPanel. Rysuje na nim pobiegajac jego grafike metoda getGraphics():

Kopiuj
Graphics g = pnlKartka.getGraphics();

a potem uzywajac obiektu g robie juz co chce, ale jest problem: gdy przesune okno / zminimalizuje na pasek i przywroce, itp wszystko co narysowalem znika (czego sie spodziewalem). Jaka metode mam nadpisac zeby narysowane elementy zostawaly odrysowane w takich przypadkach?

a moze ktos poleci mi inny komponent, i od razu kilka wskazowek co ewentualnie ponadpisywac itd.

pozdrawiam,
Lukasz

Kopiuj
Freakman
  • Rejestracja: dni
  • Ostatnio: dni
0

musisz przeslonic metode paint, bedzie automatycznie wykonywana przy skalowaniu okna.

LU
  • Rejestracja: dni
  • Ostatnio: dni
0

Dzieki za odpowiedz. Mam przeslonic metode paint jakiego obiektu?? Graphics?? Jestem poczatkujacy w Javie.

Freakman
  • Rejestracja: dni
  • Ostatnio: dni
0

paint(Graphics g)

i w niej wywolujesz rysowanie tego co chcesz miec na ekranie :)

CR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 208
0

Przesłoń paint komponentu, na którym rysujesz - w ty wypadku JPanel.

sznurek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 49
0

Mały przykład:

Kopiuj
public class MojPanel extends JPanel {
    public void paint(Graphics g) {
        g.fillRect(0,0,100,100);
        /* Lub: 
            Graphics2D g2 = (Graphics2D) g;
            i wtedy korzystamy z Java 2D Api :) 
        */
    }
}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.