Bardzo proszę o podpowiedz gdzie mam błąd ;/ wklejam kawałek kodu z jednej klasy, w tej czesci ma wyswietlac sie okno z zakladki a w nim wykres. Szukam bledu juz 2 H i nie wiem co jest zle, może specjaliści coś doradzą. Proszę o odpowiedz.

package pg;
import java.awt.;
import java.awt.event.
;
import javax.swing.;
import java.awt.geom.
;

/**

  • Klasa, która definiuje i zarządza oknem

  • przeznaczonym do dodawania nowych obiektów klasy Osoba.
    */
    public class DodajWk extends JPanel implements ActionListener {
    private JFrame rysujWykres;
    public static DodajWk program;// ?
    private JFrame okno;
    private JDialog dodajWk;
    private JButton przyciskZakoncz;
    private Graphics2D graphics2d;
    private static final long serialVersionUID = 1L;
    public DodajWk( JFrame okno ){
    rysujWykres = okno;
    }
    public DodajWk(){
    super();
    this.setBackground(Color.white);
    okno.setSize(300,100);
    okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    okno.setLocationRelativeTo(null);
    okno.add(this, BorderLayout.CENTER);
    okno.setVisible(true);
    }

    public void pokazOkno(){
    if( dodajWk==null )
    utworzOkno();
    else
    dodajWk.setVisible( true );
    }
    public void paint(Graphics g){
    super.paint(g);
    graphics2d=(Graphics2D) g;
    narysujWykres();
    }
    private void utworzOkno(){
    dodajWk = new JDialog( rysujWykres, "Wykres", true );
    dodajWk.setLayout( new GridLayout(5,4,25,40) );
    przyciskZakoncz = new JButton( "Zakoncz" );
    dodajWk.add( przyciskZakoncz );
    przyciskZakoncz.addActionListener( this );
    dodajWk.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    dodajWk.setLocationRelativeTo(null);
    dodajWk.setSize( 500, 400 );
    dodajWk.setLocationRelativeTo( null );
    dodajWk.setVisible( true );
    }

    public void dodajOs( double x1, double y1, double x2, double y2,
    double dlugoscGrotu, double szerokoscGrotu, boolean pozioma ){
    Point2D.Double p1, // poczatek osi
    p2, // koniec osi
    p3, // gorna czesc strzalki przy koncu osi
    p4; // dolna czesc strzalki przy koncu osi
    p1 = new Point2D.Double( x1, y1 );
    p2 = new Point2D.Double( x2, y2 );
    if( pozioma ){
    p3 = new Point2D.Double( x2-dlugoscGrotu, y2-szerokoscGrotu );
    p4 = new Point2D.Double( x2-dlugoscGrotu, y2+szerokoscGrotu );
    } else {
    p3 = new Point2D.Double( x2-szerokoscGrotu, y2+dlugoscGrotu );
    p4 = new Point2D.Double( x2+szerokoscGrotu, y2+dlugoscGrotu );
    }
    Line2D.Double osx,
    strzalka1,
    strzalka2;
    osx = new Line2D.Double( p1, p2 );
    strzalka1 = new Line2D.Double( p2, p3 );
    strzalka2 = new Line2D.Double( p2, p4 );
    graphics2d.draw( osx );
    graphics2d.draw( strzalka1 );
    graphics2d.draw( strzalka2 );
    }

    public void narysujWykres(){
    graphics2d.setStroke( new BasicStroke( 2.0f,
    BasicStroke.CAP_ROUND, // ązaokrglenie ńkoca linii
    BasicStroke.JOIN_BEVEL ) );
    graphics2d.setColor( Color.BLACK );
    dodajOs( 50, 250, 850, 250, 25, 10, true ); // oś x
    dodajOs( 450, 450, 450, 50, 25, 10, false ); // oś y
    int len = 100; // liczba punktow wykresu
    // wspolrzedne punktow wykresu: [px,py]
    float [] px = new float[ len ];
    float [] py = new float[ len ];
    int i;
    // okreslenie wartosci w tablicach x i y; y = cos(x)
    for( i=0; i<len; i++ ){
    // przeskalowanie zmiennej x z zakresu [0,len] do zakresu [-2 pi, 2 pi]
    px[i] = ((float)(i-len/2)) / ((float)len) * 4.0f * (float)Math.PI;
    py[i] = (float)Math.cos( px[i] );
    }
    // przeskalowanie zmiennych do rozmiarow okna
    // x: z zakresu [-2 pi, 2 pi] do zakresu [ 50, 850 ]
    // y: z zakresu [-1 , 1 ] do zakresu [ 225, 75 ]
    for( i=0; i<len; i++ ){
    px[i] = px[i] / 4.0f / (float)Math.PI * 800.0f + 450.0f;
    py[i] = - py[i] * 150.0f + 250.0f;
    }
    // zdefiniowanie linii wykresu
    GeneralPath liniaWykresu = new GeneralPath( GeneralPath.WIND_EVEN_ODD, px.length );
    liniaWykresu.moveTo( px[0], py[0] );
    for( i = 1; i < px.length; i++ )
    liniaWykresu.lineTo( px[i], py[i] );
    graphics2d.setColor( Color.GREEN );
    graphics2d.draw( liniaWykresu );
    }

    public void actionPerformed( ActionEvent e ){
    Object src = e.getSource();

     if( src == przyciskZakoncz ){
     	dodajWk.setVisible( false );
     }
    

    }
    }