ActionListener przekazujący wartości zmiennych klasie rysującej wykres

0

Mam klasę z przyciskiem oraz kilkoma JComboBox'ami. Po kliknięciu w przycisk, pobiera on indeksy wybrane z combobox'ów.

button.addActionListener(new ActionListener() {

             public void actionPerformed(ActionEvent click) {

                int choosedA1 = listA1.getSelectedIndex();
                int choosedN1 = listN1.getSelectedIndex();
                int choosedA2 = listA2.getSelectedIndex();
                int choosedN2 = listN2.getSelectedIndex();        
             }
          });
    }

Dalej mam inną klasę, w której rysowany jest wykres sinusa i cosinusa:

class Drawing extends JPanel {

    double sinus(double x) {
            return Math.sin(x);
        }
        double cosinus(double y) {
            return Math.cos(y);
        }

        protected void paintComponent(Graphics g) 
        {
            super.paintComponent(g);

            // Arrows
            g.drawLine(10, 100, 380, 100);
            g.drawLine(200, 30, 200, 190);

            g.drawLine(380, 100, 350, 90);
            g.drawLine(380, 100, 350, 110);
            g.drawLine(200, 30, 190, 60);
            g.drawLine(200, 30, 210, 60);

            //Arrow names
            g.drawString("Os X", 340, 70);
            g.drawString("Os Y", 220, 40);

            Polygon p = new Polygon();
            Polygon p2 = new Polygon();

            int point;
            int a1 = 1;
            int n1 = 1;
            for (point = -170; point <= 170; point++) {
                p.addPoint(point + 200, 100 - (int) (n1*50 * sinus((point / 100.0) * 2/(a1) * Math.PI)));
            }
            int point2;
            int a2 = 1;
            int n2 = 1;
            for (point2 = -170; point2 <= 170; point2++) {
                p2.addPoint(point2 + 200, 100 - (int) (n2*50 * cosinus((point2 / 100.0) * 2/(a2) * Math.PI)));
            }
            repaint();
            // Sinus
            g.setColor(Color.green);
            g.drawPolyline(p.xpoints, p.ypoints, p.npoints);
            // Cosinus
            g.setColor(Color.red);
            g.drawPolyline(p2.xpoints, p2.ypoints, p2.npoints);
            // Zero zero point
            g.setColor(Color.blue);
            g.drawString("0", 202, 115);
            g.drawOval(198, 98, 5, 5);
        }
}

Moje pytanie: co zrobić, żeby wybrane w combobox'ach wartości były zmiennymi w klasie rysującej wykres? Mam na myśli:

int choosedA1;

powinno przekazać swoją wartość do

int a1;

(Teraz zmiennym przypisałem wartości = 1). Przy każdej zmianie (wyborze innych wartości z combobox'ów) chcę aby wykres był przerysowywany od nowa (uaktualniany na bieżąco). Proszę o pomoc.
//Dopisałem =java wewnątrz znaczników < code >.

1

Zmień a1,n1,a2,n2 na pola w klasie Drawing, zapamiętaj (w polu, nie w zmiennej lokalnej)w głównej klasie referencję do klasy Drawing

Drawing draw = new Drawing();

i zmień metodę actionPerformed

button.addActionListener(new ActionListener() {
 
             public void actionPerformed(ActionEvent click) {
 
                draw.a1 = listA1.getSelectedIndex();
                draw.n1 = listN1.getSelectedIndex();
                draw.a2 = listA2.getSelectedIndex();
                draw.n2 = listN2.getSelectedIndex();        
             }
          });
    }

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