metoda paintComponent

0

Witam,
chcialbym zrobic tak, aby metoda paintComponent ktora mam w klasie dziedziczacej po JPanel nie byla wyswietlana automatycznie...mam przycisk Sinogram, po kliknieciu ktorego ma dopiero mi namalowac wykres pewnej funkcji a przez to ze mam taki kod:

public void paintComponent(Graphics g) {

     //   narysuj model
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D)g;
        //os fi
        g2.draw(new Line2D.Double(200, 80, 200, 320));
        
        //os X
        g2.draw(new Line2D.Double(50, 300, 350, 300));

       for(int i = 1; i<160; i++) {        
            int x1 = pts[i-1];
            int y1 = (int)(301 -i);
            int x2 = pts[i];
            int y2 = (int)(302-i);
            g2.drawLine(x1,y1,x2,y2);
        }
//.......
       }

niestety po wlaczeniu samego programu maluje mi prosta (bo poczatkowe wartosci pts[i] przed wcisnieciem przycisku sa rowne 0)

czy mozna to jakos zmienic, aby na poczatku nie rysowalo mi w ogóle wykresu tylko osie??

0

wstawienie jakiejś ustawionej początkowo na false boolean'owej flagi zmienianej na true po wcisnieciu przycisku + repaint()... ?

ps.
wstaw na początku metody paint coś takiego ;-]

((Graphics2D)g).setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

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