狼孑野心 2009-10-30 12:47 采纳率: 0%
浏览 547
已采纳

在java中,怎样通过点一个Button按钮取消Checkbox原有的选中状态,变为未选中?

运行时,先选中一个(A,B,C,D中任选一个,如A),此时在文件text.txt中读入了一个A,然后点按钮“下一个”,此时A的选中状态应该被取消了,然后可以再选A,文件里又读入一个A

最终目的是:连续的问题可以选同样的答案(文件中读入多个连续的相同的答案)

以下是改模块的代码。请指点指点该怎么修改,谢谢!!

import java.awt.*;
import java.awt.event.*;
import java.io.*;

public class TextCheckbox implements ItemListener{
Frame MyFrame=new Frame();
Button btn=new Button("下一个");
CheckboxGroup checkboxgroup=new CheckboxGroup();
Checkbox p1=new Checkbox("A",false,checkboxgroup);
Checkbox p2=new Checkbox("B",false,checkboxgroup);
Checkbox p3=new Checkbox("C",false,checkboxgroup);
Checkbox p4=new Checkbox("D",false,checkboxgroup);
TextCheckbox()
{
MyFrame.setLayout(new FlowLayout());
MyFrame.add(p1);
MyFrame.add(p2);
MyFrame.add(p3);
MyFrame.add(p4);
MyFrame.add(btn);
p1.addItemListener(this);
p2.addItemListener(this);
p3.addItemListener(this);
p4.addItemListener(this);
MyFrame.setSize(300,300);
MyFrame.setVisible(true);
MyFrame.addWindowListener(new HandleAct());
}
public void itemStateChanged(ItemEvent e)
{
String label=((Checkbox)e.getSource()).getLabel();
try{
if(e.getStateChange()==ItemEvent.SELECTED){
PrintWriter input=new PrintWriter(new FileWriter("key.txt",true));
input.println(label);
input.close();
}
}catch(IOException ioe){}
}
class HandleAct extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
(e.getWindow()).dispose();
System.exit(0);
}
}

/**
 * @param args
 */
public static void main(String[] args) {
    new TextCheckbox();
    // TODO 自动生成方法存根

}

}

  • 写回答

1条回答 默认 最新

  • star00123 2009-10-30 19:57
    关注

    也许不是很理解你的意思,如果是点击“下一个”按钮,所有的checkBox都是未选中状态,那么只要在你的按钮上加一个监听事件即可...
    [code="java"]
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;

    public class CheckBoxTest implements ItemListener {
    Frame MyFrame = new Frame();
    Button btn = new Button("下一个");
    CheckboxGroup checkboxgroup = new CheckboxGroup();
    Checkbox p1 = new Checkbox("A", false, checkboxgroup);
    Checkbox p2 = new Checkbox("B", false, checkboxgroup);
    Checkbox p3 = new Checkbox("C", false, checkboxgroup);
    Checkbox p4 = new Checkbox("D", false, checkboxgroup);

    CheckBoxTest() {
        MyFrame.setLayout(new FlowLayout());
        MyFrame.add(p1);
        MyFrame.add(p2);
        MyFrame.add(p3);
        MyFrame.add(p4);
        MyFrame.add(btn);
        p1.addItemListener(this);
        p2.addItemListener(this);
        p3.addItemListener(this);
        p4.addItemListener(this);
        //为下一个按钮增加监听事件
        btn.addActionListener(new Moniter());//新增代码
        MyFrame.setSize(300, 300);
        MyFrame.setVisible(true);
        MyFrame.addWindowListener(new HandleAct());
    }
    
    public void itemStateChanged(ItemEvent e) {
        String label = ((Checkbox) e.getSource()).getLabel();
        try {
            if (e.getStateChange() == ItemEvent.SELECTED) {
                PrintWriter input = new PrintWriter(new FileWriter("key.txt",
                        true));
                input.println(label);
                input.close();
            }
        } catch (IOException ioe) {
        }
    }
    
    class HandleAct extends WindowAdapter {
        public void windowClosing(WindowEvent e) {
            (e.getWindow()).dispose();
            System.exit(0);
        }
    }
    //按钮监听事件,定义了点击下一个按钮执行的操作  新增方法代码
    class Moniter implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            // 设置什么都不选中
            checkboxgroup.setSelectedCheckbox(null);
        }
    }
    /**
     * 测试
     */
    public static void main(String[] args) {
        new CheckBoxTest();
    }
    

    }
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料