import java.io.*;
import java.awt.*;
import java.awt.event.*;
public class quiz2 extends Frame implements ItemListener, ActionListener{
Label label1 = new Label("Please Choose one");
Checkbox sugar = new Checkbox ("Sugar");
Checkbox candy = new Checkbox ("Candy");
Button sum = new Button ("Clear");
public quiz2 (){
setSize (200,200);
setLocation (100,100);
setTitle ("Example");
setLayout (null);
setResizable (false);
setVisible (true);
label1.setBounds (20,20,120,20);
add(label1);
CheckboxGroup sweets = new CheckboxGroup();
sugar.setBounds(20,40,120,20);
sugar.addItemListener(this);
add(sugar);
candy.setBounds(20,60,120,20);
candy.addItemListener(this);
add(candy);
sum.setBounds(20,80,50,30);
sum.addActionListener(this);
add(sum);}
public void itemStateChanged (ItemEvent item){
if (item.getSource()==sugar){
if (item.getStateChange()==ItemEvent.SELECTED){
setTitle ("You clicked sugar");}
else if (item.getStateChange()==ItemEvent.DESELECTED){
setTitle("You uncliked sugar");}}
else if (item.getSource()==candy){
if (item.getStateChange()==ItemEvent.SELECTED){
setTitle ("You clicked candy");}
else if (item.getStateChange()==ItemEvent.DESELECTED){
setTitle("You uncliked candy");}}}
public void actionPerformed (ActionEvent butt){
setTitle("Example");
candy.setSelected(false);
sugar.setSelected(false);}}
我找到的唯一解决方案是checkbox.setSelected()
,它在我的代码中不起作用,我正在使用BlueJ(因为我们学校使用它)。
sum
按钮(忘记更改名称)的主要功能是DESELECT
sugar
和candy
,无论是否点击它们。
答案 0 :(得分:0)
您在CheckBox上调用setSelected(),但CheckBox没有setSelected()方法。您应该使用具有setSelected()方法的Swing JCheckBox,或者您应该调用CheckBox的setState()方法。
API中解释了这一点:http://docs.oracle.com/javase/7/docs/api/java/awt/Checkbox.html
答案 1 :(得分:0)
java.awt.Checkbox类中没有名为setSelected的方法。它叫做setState。
http://docs.oracle.com/javase/7/docs/api/java/awt/Checkbox.html
void java.awt.Checkbox.setState(boolean state) - 将此复选框的状态设置为指定的状态。布尔值true表示“on”状态,false表示“off”状态。
candy.setState(false);
sugar.setState(false);