Подключите 2 флажка с графикой Java-апплета

#java

#java

Вопрос:

Прежде всего, немного информации, мы должны закодировать эту программу в школе, поэтому я бы хотел, чтобы, если я установил любой флажок, он должен мгновенно нарисовать квадрат / круг со значением, которое вы вводите в текстовое поле

Если флажок установлен, я хочу, чтобы он нарисовал круг или фигуру. Но это не сработает. Должен ли я что-то менять в методе paint или в методе itemStateChanged.

 public class kreisrechner extends Applet implements ActionListener, ItemListener {
double umfang;
double flaeche;
int radius;
int value;
CheckboxGroup cbg;
Label lblradius = new Label("Radius:          ");
Label lblumfang = new Label("Umfang:              ");
Label lblflaeche = new Label("Fläche:             ");
Label lbltext = new Label("Radius:");
Label lblerror = new Label("Checking...");
TextField txtEingabe = new TextField("0", 30);
Button cmdRechnen = new Button("Berechne");
Checkbox cbKreis = new Checkbox("Kreis", cbg, false);
Checkbox cbQuader = new Checkbox("Quader", cbg, false);

public void init() {
    cbg = new CheckboxGroup();
    Frame title = (Frame)getParent().getParent();
    title.setTitle("Kreisrechner");
    setSize(700, 700);
    add(lblerror);
    add(cbKreis);
    add(cbQuader);
    add(lbltext);
    add(txtEingabe);
    add(cmdRechnen);
    add(lblradius);
    add(lblumfang);
    add(lblflaeche);
    cmdRechnen.addActionListener(this);
    cbKreis.addItemListener(this);
    cbQuader.addItemListener(this);
}
public void itemStateChanged (ItemEvent e){
    if (e.getSource() == cbKreis) {
        cbg.setSelectedCheckbox(cbKreis);
        getGraphics().drawOval(200, 200, value, value);
        repaint();
    } else if (e.getSource() == cbQuader) {
        cbg.setSelectedCheckbox(cbQuader);
        getGraphics().drawRect(200, 200, value, value);
        repaint();
    } else {
        getGraphics().drawString("Bitte wähle eine Darstellungsform aus!", 300, 300);
    }
}

public void actionPerformed(ActionEvent e) {
    String preCheck = txtEingabe.getText();
    int c = Integer.parseInt(preCheck);
    if (c < 0) {
        lblerror.setText("ERROR! Radius darf nicht negativ sein.");
    } else {
        lblerror.setText("OK!");
    }

    String eingabe = txtEingabe.getText();
    umfang = Float.parseFloat(eingabe);
    umfang = 6.283185307179586D * umfang;
    lblumfang.setText(("Umfang:"   umfang));
    radius = Integer.parseInt(eingabe);
    lblradius.setText("Radius:"   eingabe);
    flaeche = 3.141D * (double)(radius * radius);
    lblflaeche.setText(("Fläche:"   flaeche));
}

public void paint(Graphics g) {
    if (cbQuader.getState()==true){
        g.drawRect(200,200,value,value);
        repaint();
    } else {
        return;
    }
    if (cbKreis.getState()==true){
        g.drawOval(200,200,value,value);
        repaint();
    } else {
        return;
    }
    String eingabe = txtEingabe.getText();
    value = Integer.parseInt(eingabe);
    g.drawString("r", 200   value / 3, 245   value / 3);
}}