JavaFx:10、雙擊事件和檢測鍵盤按鍵


package fx.com;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.input.MouseButton;
import javafx.scene.input.MouseEvent;
import javafx.stage.Stage;


public class Main extends Application {
    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {

        Button b2 = new Button();
        b2.setText("這是按鈕");
        b2.setLayoutX(100);
        b2.setLayoutY(300);
        b2.setPrefWidth(500);
        b2.setPrefHeight(200);

        b2.setStyle(
                "-fx-background-color: cadetblue;" +
                        "-fx-background-radius: 20;" +
                        "-fx-text-fill: antiquewhite;" +
                        "-fx-font-family: 'Microsoft YaHei UI';" +
                        "-fx-font-size: 50"
        );

        // 按鈕單擊事件
        b2.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
                Button button = (Button) event.getSource();
                System.out.println(button.getText());
            }
        });

        // 響應鼠標的另一種形式
        b2.addEventHandler(MouseEvent.MOUSE_CLICKED, event -> {
            System.out.println(event.getButton().name());

            //System.out.println("鼠標單擊");

            if (event.getClickCount() == 2 && event.getButton().name().equals(MouseButton.PRIMARY.name())) {
                System.out.println("鼠標雙擊");
            }
        });

        // 相應鍵盤按鍵按下
        b2.setOnKeyPressed(new EventHandler<KeyEvent>() {
            @Override
            public void handle(KeyEvent event) {
                if (event.getCode().getName().equals(KeyCode.A.getName()))
                System.out.println(event.getCode().getName());
            }
        });

        // 響應鍵盤按鍵彈起
        b2.setOnKeyReleased(new EventHandler<KeyEvent>() {
            @Override
            public void handle(KeyEvent event) {
                System.out.println(event.getCode().getName());
            }
        });

        Group group = new Group();
        group.getChildren().addAll(b2);


        Scene scene = new Scene(group);
        primaryStage.setScene(scene);
        primaryStage.setHeight(600);
        primaryStage.setWidth(800);
        primaryStage.show();
        primaryStage.centerOnScreen();
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM