javaFX简单实践(四)——键盘控制输入文字运动

显示用户输入的字符。用户可以使用上、下、左、右箭头按键来将字符做相应移动。

 

import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.stage.Stage;

public class ContralText extends Application {
    int X=100;
    int Y=300;
    @Override
    public void start(Stage primaryStage) throws Exception {
        primaryStage.setTitle("Contral Text");
        primaryStage.setResizable(false);
        Group group = new Group();
        Scene scene = new Scene(group, 600, 600, Color.WHITE);

        Label lb = new Label();
        lb.setLayoutX(X);
        lb.setLayoutY(Y);
        lb.setFont(new Font(28));
        group.getChildren().add(lb);

        scene.setOnKeyPressed(new EventHandler<KeyEvent>() {
            @Override
            public void handle(KeyEvent event) {
                KeyCode keyIn = event.getCode();
                String key = event.getText();
                if ((key.compareTo("A") >= 0 && key.compareTo("Z") <= 0) || (key.compareTo("a") >= 0 && key.compareTo("z") <= 0)) {
                    lb.setText(lb.getText() + key);
                }else if (keyIn == KeyCode.UP || keyIn == KeyCode.W) {
                    Y -= 5;
                } else if (keyIn == KeyCode.DOWN || keyIn == KeyCode.S) {
                    Y += 5;
                } else if (keyIn == KeyCode.LEFT || keyIn == KeyCode.A) {
                    X -= 5;
                } else if (keyIn == KeyCode.RIGHT || keyIn == KeyCode.D) {
                    X += 5;
                }
                if (X > 500) X = 500;
                if (X < 100) X = 100;
                if (Y > 500) Y = 500;
                if (Y < 100) Y = 100;
                lb.setLayoutX(X);
                lb.setLayoutY(Y);
            }
        });

        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值