JavaFX的学习(四)之Scene和Node

对Scene和Node的部分属性和方法进行了学习,一些暂时用不到的就没有测试。忘了重点,学习了JavaFX后我才知道还可以这样:实例名.方法.方法。真神奇。

package javafx;

import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.ImageCursor;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.image.Image;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;
//Node类是抽象类,许多控件类均继承它
//Scene和Node的部分方法和属性的学习
//parent,scene
public class Main4 extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {
        Button button0 = new Button("Hello Java!");
        button0.setLayoutX(300);
        button0.setLayoutY(300);

        AnchorPane root = new AnchorPane();
        root.getChildren().addAll(button0);

        Scene scene = new Scene(root,600,600);

        Label label = new Label("It is my show time!");
        label.setLayoutX(200); //设置坐标,是继承自Node类的通用属性之一
        label.setLayoutY(150);
        //设置标签的背景颜色,边框颜色以及边框的大小
        label.setStyle("-fx-background-color: red; -fx-border-color: black; -fx-border-width: 3px");
        //设置标签的宽高
        label.setPrefWidth(188);
        label.setPrefHeight(42);
        //将标签设置为居中
        label.setAlignment(Pos.CENTER); //Alignment意思是对齐
        //label.setVisible(false);
        // Visible是设置显示的,一般默认显示(否则太麻烦)
        //Opacity为设置透明度
        label.setOpacity(0.8);
        //Rotate为旋转
        label.setRotate(45);
        //Translate为设置移动,还有一个TranslateZ,不过好像要三维空间才能做到吧,
        // 我觉得这个方法比较鸡肋,在设置Layout的时候设置好位置不就行了,要是不满意也可以改,没必要再多写这个代码,可能有其他用处吧
        label.setTranslateX(60);
        label.setTranslateY(80);
        label.getScene();

        Button button1 = new Button("Go Back");
        button1.setLayoutX(200);
        button1.setLayoutY(200);
        AnchorPane root1 = new AnchorPane();
        root1.getChildren().addAll(label,button1);
        Scene scene1 = new Scene(root1,600,600);
        //设置光标的图像,scene1和scene设置了不同的光标图像
        scene1.setCursor(new ImageCursor(new Image("File:C:\\Users\\lyj\\Desktop\\学习作业\\壁纸\\A11.jpeg")));

        scene.setCursor(new ImageCursor(new Image("File:C:\\Users\\lyj\\Desktop\\学习作业\\壁纸\\微信图片1.jpg")));
        //设置点击事件
        button0.setOnAction(event -> {
            primaryStage.setScene(scene1);
        });
        button1.setOnAction(event -> {//两个场景相互进入
            primaryStage.setScene(scene);
        });
        primaryStage.setScene(scene);
        primaryStage.setTitle("Good Day!");
        primaryStage.show();
    }

    public static void main(String[] args) {
        Application.launch(args);
    }
}

运行结果:光标放窗口里是有不同图片的,可是一截屏就没了,没法展示。
scene0:
在这里插入图片描述
scene1:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值