对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: