JavaFX(六)之事件驱动,Color,Font和Image

事件驱动主要是几个大类,其中的方法都是大同小异。
Color更易理解,就是上色,其中大多都是静态方法,颜色什么的都已经准备好了,只要通过不同方法调用就行。
Font是设置字体,字的大小,字的粗细,倾斜之类的。
Image就是设置图画。

package javafx;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.input.Dragboard;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.input.TransferMode;
import javafx.scene.layout.AnchorPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.stage.Stage;


public class Main6 extends Application {

    public static void main(String[] args) {
        Application.launch(args);
    }
    @Override
    public void start(Stage primaryStage) throws Exception {
        AnchorPane root = new AnchorPane();
        Scene scene = new Scene(root,600,600);

        Label label = new Label("动起来!");
        label.setLayoutX(360);
        label.setLayoutY(200);
        //font设置字体
        label.setFont(Font.font("华文隶书", FontWeight.BOLD,30));

        Button button = new Button("向上走起");
        root.getChildren().addAll(label,button);

        button.setOnAction(new EventHandler<ActionEvent>() { //事件处理者
            @Override
            public void handle(ActionEvent event) {
                label.setLayoutY(label.getLayoutY() - 10);
            }
        });

        //键盘事件KeyReleased为键盘抬起的时候,KeyPressed为键盘按下的时候,KeyTyped为键盘按下又抬起的时候
        //键盘事件有两种放法进行,一种是用new一个EventHandler对象,通过单个handle方法完成
        //也可以通过event ->的形式完成
        scene.setOnKeyReleased(new EventHandler<KeyEvent>() {
            @Override
            public void handle(KeyEvent event) {

            }
        });
        scene.setOnKeyReleased(event -> {
            KeyCode keyCode = event.getCode();
            if (keyCode.equals(KeyCode.DOWN)) {
                label.setLayoutY(label.getLayoutY() + 5);
            }
        });

        TextField textField = new TextField();  //TextField为文本框,可以输入文字
        textField.setLayoutX(100);
        textField.setLayoutY(100);

        textField.setOnDragOver(event -> { //对文本拖拽时
            event.acceptTransferModes(TransferMode.ANY); //接受传输方式
        });

        textField.setOnDragDropped(event -> { //文本拖拽后
            Dragboard dragboard = event.getDragboard();
            if(dragboard.hasFiles()) {
                String path = dragboard.getFiles().get(0).getAbsolutePath();
                textField.setText(path);
            } //设置后将文本拖拽到那里就可以获得地址
        });
        //Color学习
        Circle circle = new Circle(); //Circle是圆
        circle.setCenterX(123);
        circle.setCenterY(123);
        circle.setRadius(88); //Radius为半径
        circle.setFill(Color.rgb(250,250,0)); //三个位置输入不同的数字相当于就是调色一样
        //还有一个同名的方法有四个参数,可以设置透明度
        circle.setStroke(Color.YELLOW);
        circle.setStrokeWidth(12);
//        ImageView imageView = new ImageView();
//        Image image = new Image("image/idea3.WEBP");
//        imageView.setImage(image);
//        root.getChildren().add(imageView);
        root.getChildren().add(circle);

        root.getChildren().add(textField);
        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

运行结果:点击向上的按钮那几个字就会向上(我按空格也会),按键盘上的向下键,就会向下移动。
在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值