暑假)伪qq小聊天项目

昨天弄了checkbox,我本来是弄的checkbox.fxml文件的controller和addgroup.fxml一样,这样就出bug了,因为我加载checkbox组件是写在for循环里的,那他连接controller不也一直循环?所以这样就导致我每次想创建群聊的时候,都会“未响应”

解决方法就是手写点击checkbox事件,而不是用controller

我把将所有好友的checkbox都写在一个函数里,方便调用,因为要多次用到

    public void loadf(){
        //获取该用户的所有好友
        String[] friends = fimp.gaininfo(user.getAcountnum());
        //将该用户的好友的控件一个一个做出来
        for(int i = 0; i < fimp.gainfnum(user.getAcountnum()); i ++){
            try {
                String id = imp.getinfo(friends[i]).getId();
                CheckBox cb = FXMLLoader.load(getClass().getResource("checkbox.fxml"));
                cb.setText(id);
                friendVBox.getChildren().add(cb);
                AnchorPane ap = creatmembers(id);
                cb.selectedProperty().addListener(new ChangeListener<Boolean>() {
                    @Override
                    public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
                        if(newValue){
                            members.getChildren().add(ap);
                            nums[0]++;
                            num.setText("已选联系人:("+ nums[0] +")");
                        }else{
                            members.getChildren().remove(ap);
                            nums[0]--;
                            num.setText("已选联系人:("+ nums[0] +")");
                        }
                    }
                });

            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

再来实现输入好友的账号来查找好友

在textFiled的onaction里写判断语句,如果有好友的账号是TextFiled.getText()的话,就清空friendvbox,再将这个搜索到的好友账号的checkbox添加到friendvbox

获得到了这个好友之后,万一还想查看所有好友的checkbox怎么办呢?

再给TextField添加一个事件

  • On Mouse Clicked:当鼠标点击时触发事件。

在该事件里,先清空friendvbox,再调用loadf函数

javafx

scene builder(code)事件

键盘

On Key Pressed:当键盘按键被按下的时候触发事件。

On Key Released:当键盘按键按下后被释放的时候触发事件。

On Key Typed:只会响应文字输入键,如字母、数字和标点符号等,它不会响应CTRL/ENTER/F1等功能键。

鼠标

On Context Menu Requested:当鼠标右键单击时触发该事件

On Mouse Clicked:当鼠标点击时触发事件

On Mouse Dragged:当鼠标拖动该控件时触发事件

On Mouse Entered:当鼠标进入该控件范围内触发

On Mouse Exited:当鼠标离开该控件范围内触发

On Mouse Moved:当鼠标在控件范围内移动触发

On Mouse Pressed:当鼠标按下左键或右键时触发事件

On Mouse Released:当鼠标松开按键时触发事件

On Scroll:当滚动鼠标滚轮时触发事件

On Scroll Started:定义检测到滚动手势时要调用的事件

On Scroll Finished:定义滚动手势结束时要调用的事件
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值