有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用Java小程序图形连接2个复选框

首先是一些信息,我们必须在学校编写这个程序,所以我希望如果我选中任何复选框,它应该立即用你在文本字段中输入的值绘制一个正方形/圆形

如果复选框被选中,我希望它画一个圆或一个Spuare。 但这行不通。我是否必须更改方法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);
}}

共 (0) 个答案