javaFx中的Button样式设置、点击事件、设置快捷键等

Button样式设置

button的背景、边框、字体设置,比较基础简单的示例如下:

public class JavaFxNote extends Application {
    public static void main(String[] args)
    {
//        调用launch方法启动应用
     launch(args);
    }
    @Override

    public void start(Stage primaryStage) throws Exception {

        Button btn1 = new Button("btn1");
        btn1.setLayoutX(50);
        btn1.setLayoutY(50);
        btn1.setPrefWidth(50);
        btn1.setPrefHeight(50);


        Group group =new Group();
//        容器添加子组件
        group.getChildren().addAll(btn1);

//        装饰btn1按钮
        btn1.setStyle(
                "-fx-background-color:#00BFFF;"+         //设置背景颜色
                        "-fx-background-radius:20;"+     //设置背景圆角
                        "-fx-text-fill:#FF0000;"+        //设置字体颜色
                        "-fx-border-radius:20;"+         //设置边框圆角
                        "-fx-border-color:#FFFF00;"+     //设置边框颜色
                        "-fx-border-style:dashed;"+      //设置边框样式
                        "-fx-border-width:5;"+           //设置边框宽度
                        "-fx-border-insets:-5"           //设置边框插入值
        );

//        指定一个布局类或者根结点
        Scene scene = new Scene(group);


        primaryStage.setScene(scene);
        primaryStage.setTitle("骏杰小程序");
        primaryStage.setHeight(768);
        primaryStage.setWidth(1366);
        primaryStage.show();

    }
}

运行出来的效果如下:

 

Button的点击事件

button的点击事件分单击事件、双击事件、键盘触发事件等。下面也是一个简单的示例,注释也说得比较明白。

public class JavaFxNote extends Application {
    public static void main(String[] args)
    {
//        调用launch方法启动应用
     launch(args);
    }
    public void start(Stage primaryStage) throws Exception {

        Button btn1 = new Button("btn1");
        btn1.setLayoutX(50);
        btn1.setLayoutY(50);
        btn1.setPrefWidth(50);
        btn1.setPrefHeight(50);


        Group group =new Group();
//        容器添加子组件
        group.getChildren().addAll(btn1);

//        设置按钮单击事件
        btn1.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
                System.out.println("btn1的单击事件");
            }
        });

//        设置按钮单击事件,并设置鼠标左键触发双击事件
        btn1.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() {
            @Override
            public void handle(MouseEvent event) {
                System.out.println("鼠标按键"+event.getButton().name());  
//        将MouseButton.PRIMARY替换,可设置为鼠标右键
if(event.getClickCount()==2&&event.getButton().name().equals(MouseButton.PRIMARY.name())){
                    System.out.println("鼠标按键为:"+event.getButton().name());
                    System.out.println("触发双击事件");
                }
            }
        });

//        设置按钮键盘按下事件,并过滤除A外的键
        btn1.setOnKeyPressed(new EventHandler<KeyEvent>() {
            @Override
            public void handle(KeyEvent event) {
//        如果不想设置为A键,可将KeyCode.A替换成别的键
                if(event.getCode().getName().equals(KeyCode.A.getName()))
                System.out.println("按下="+event.getCode().getName());
            }
        });

//        设置按钮键盘释放事件,并过滤除A外的键
        btn1.setOnKeyReleased(new EventHandler<KeyEvent>() {
            @Override
            public void handle(KeyEvent event) {
                if(event.getCode().getName().equals(KeyCode.A.getName()))
                System.out.println("释放="+event.getCode().getName());
            }
        });

//        指定一个布局类或者根结点
        Scene scene = new Scene(group);


        primaryStage.setScene(scene);
        primaryStage.setTitle("骏杰小程序");
        primaryStage.setHeight(400);
        primaryStage.setWidth(400);
        primaryStage.show();

    }
}

 

 

Button设置快捷键

快捷键的设置有四种方法,两种是比较常用的,两种不常用。下面是设置快捷键的简单示例。

public class JavaFxNote extends Application {
    public static void main(String[] args)
    {
//        调用launch方法启动应用
     launch(args);
    }
    @Override
    public void start(Stage primaryStage) throws Exception {

        Button btn1 = new Button("btn1");
        btn1.setLayoutX(50);
        btn1.setLayoutY(50);
        btn1.setPrefWidth(50);
        btn1.setPrefHeight(50);


        Group group =new Group();
//        容器添加子组件
        group.getChildren().addAll(btn1);

        btn1.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
                play();
            }
        });
//        指定一个布局类或者根结点
        Scene scene = new Scene(group);

//        第一种快捷键设置方式,也是常用的
        KeyCombination kc1 = new KeyCodeCombination(KeyCode.C,KeyCombination.ALT_DOWN,KeyCombination.CONTROL_DOWN);
        Mnemonic mnemonic = new Mnemonic(btn1,kc1);
        scene.addMnemonic(mnemonic);

//        第二种快捷键设置方式,不太常用
        KeyCombination kc2 = new KeyCharacterCombination("A",KeyCombination.ALT_DOWN);
        Mnemonic mnemonic2 = new Mnemonic(btn1,kc2);
        scene.addMnemonic(mnemonic2);

//        第三种设置快捷键方式,基本不用
        KeyCombination kc3 = new KeyCodeCombination(KeyCode.K,KeyCombination.SHIFT_DOWN,KeyCombination.CONTROL_DOWN,KeyCombination.ALT_DOWN,KeyCombination.META_DOWN,KeyCombination.SHORTCUT_DOWN);
        Mnemonic mnemonic3 = new Mnemonic(btn1,kc3);
        scene.addMnemonic(mnemonic3);

//        第四种设置快捷键方式,最常用,
//        SHORTCUT_DOWN等同于Windows系统的Ctrl,等同于Mac系统的Meta
        KeyCombination kc4 = new KeyCodeCombination(KeyCode.Y,KeyCombination.SHORTCUT_DOWN);
        scene.getAccelerators().put(kc4, new Runnable() {
            @Override
            public void run() {
                System.out.println("run方法");
                play();
            }
        });

        primaryStage.setScene(scene);
        primaryStage.setTitle("骏杰小程序");
        primaryStage.setHeight(400);
        primaryStage.setWidth(400);
        primaryStage.show();

    }

    public  static void play(){
        System.out.println("触发快捷键");
    }
}

 

       学习javafx的资料比较少,视频学习推荐哔哩哔哩搜索up主:Aimls,或者加入扣扣群里学习:一群 456378454 ,二群:464362636

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃西瓜不吐西瓜籽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值