JavaFX-7(Group类的使用)

此篇博客展示了如何使用JavaFX创建一个简单的GUI应用,通过Button实例动态添加和监听节点,实现按需生成新的按钮并实时更新子组件数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import javafx.application.Application;
import javafx.collections.ListChangeListener;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.stage.Screen;
import javafx.stage.Stage;

import java.awt.*;
import java.lang.management.BufferPoolMXBean;

public class Main extends Application {

    int i = 0;
    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        Button b1 = new Button("按钮1");
        Button b2 = new Button("按钮2");
        Button b3 = new Button("按钮3");

        b1.prefWidth(50);
        b2.prefWidth(50);
        b3.prefWidth(50);

        b1.prefHeight(50);
        b2.prefHeight(50);
        b3.prefHeight(50);

        b1.setLayoutX(0);
        b2.setLayoutX(100);
        b3.setLayoutX(200);

        Group group = new Group();
        group.getChildren().addAll(b1,b2,b3);
//        group.setOpacity(0.5);
//        group.getChildren().clear();
//        group.getChildren().remove(0);

        group.getChildren().addListener(new ListChangeListener<Node>() {
            @Override
            public void onChanged(Change<? extends Node> c) {
                System.out.println("当前子组件数量=" + c.getList().size());
            }
        });


        b1.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
                Button b4 = new Button("按钮4");
                b4.setLayoutX(300);
                i += 10;
                b4.setLayoutY(i);
                group.getChildren().add(b4);
            }
        });

        Scene scene = new Scene(group);
        primaryStage.setScene(scene);
        primaryStage.setWidth(500);
        primaryStage.setHeight(500);
        primaryStage.show();
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值