Z寒火 2023-10-07 14:21 采纳率: 56%
浏览 4
已结题

swing中jbutton的监听事件


import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Test extends JFrame{
    public static void main(String[] args) {
        Test test=new Test();
        test.setSize(1400,950);
        test.setVisible(true);
        test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    public Test(){
        Init();
    }
    public void Init(){
        JPanel panel=new JPanel();
        JButton bt=new JButton("按钮");
        JCheckBox checkBox1=new JCheckBox("aaaaa");
        JCheckBox checkBox2=new JCheckBox("bbbbb");
        JCheckBox checkBox3=new JCheckBox("ccccc");

       JCheckBox checkBox4=new JCheckBox("ddddd");
       JCheckBox checkBox5=new JCheckBox("eeeee");

       bt.addActionListener(new ActionListener() {
           @Override
           public void actionPerformed(ActionEvent e) {
               panel.removeAll();
               panel.add(checkBox4);
               panel.add(checkBox5);
               panel.repaint();
           }
       });

        panel.add(bt);
        panel.add(checkBox1);
        panel.add(checkBox2);
        panel.add(checkBox3);

        this.add(panel);

    }
}

这段代码能成功运行,但是再点击按钮后没有反应,按钮一直是点击的状态,啥反应也没有。

  • 写回答

3条回答 默认 最新

  • 关注

    因为你写了panel.removeAll();它是移除了panel里所有的东西,但是没有重新渲染,所以看不出来,如果你这样写:

    bt.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    panel.removeAll();
                    panel.repaint();//重新渲染
                }
            });
    
    

    就能看到控件都被移除了,swing容器里添加或者移除元素,都要重新repaint一下

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 10月16日
  • 已采纳回答 10月8日
  • 修改了问题 10月8日
  • 创建了问题 10月7日

悬赏问题

  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 路易威登官网 里边的参数逆向
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
  • ¥50 需求一个up主付费课程