使用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) 个答案