文章目录
Java: JavaFX桌面GUI开发
1、基本概念
2、最小框架代码
3、控件布局
4,初步认识stage窗口
5,stage窗口模式(StageStyle)
6,screen类的使用
7,Group容器的使用
8,Button按钮以及简单介绍设置背景颜色和外边框等问题
9,JavaFX布局(pane)
(1). Pane
(2). BorderPane
(3). HBox
(4). VBox
(5) FlowPane面板
(6), GridPane面板
用户界面设计例子
Java: JavaFX桌面GUI开发
1、基本概念
窗口 Stage
场景 Scene
布局 stackPane
控件 Button
2、最小框架代码
创建命令行应用
package com.company;
import javafx.application.Application;
import javafx.stage.Stage;
public class HelloWorld extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.show(); //显示窗口
}
public static void main(String[] args) {
launch(args); //启动这个程序 APPlication的方法
}
}
对就是啥都没有,空白的窗体
3、控件布局
package com.company;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
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 button = new Button("这是按钮上的文字");
// 创建布局控件 //其他各种布局StackPane,FlowPane,HBox,VBox,GridPane,BorderPane
StackPane stackPane = new StackPane();
// 将button添加到布局
stackPane.getChildren().add(button);
// 创建场景 宽=400 高=400
Scene scene = new Scene(stackPane, 400, 400);
// 将场景添加到窗口
primaryStage.setScene(scene);
// 显示窗口
primaryStage.show();
}
}
4,初步认识stage窗口
primaryStage.setTitle("JavaFX"); //添加标题
primaryStage.getIcons().add(new Image("ico/tim.png")); //设置图标
primaryStage.setIconified(true); //设置最小化
primaryStage.setMaximized(true); //设置最大化
primaryStage.close(); //关闭窗口
rimaryStage.setResizable(false); //设置窗口大小是否可调整
primaryStage.setWidth(500); primaryStage.setHeight(500); //设置窗口宽度和高度
primaryStage.setWidth(500); primaryStage.setHeight(500); //设置窗口最大宽高
primaryStage.getWidth();
primaryStage.getHeight() //获取窗口宽高
primaryStage.show(); //显示窗口
primaryStage.setOpacity(0.5); //设置窗口不透明度
primaryStage.setAlwaysOnTop(true); //设置在窗口永远在最上层
rimaryStage.setX(100);
primaryStage.setY(100); //设置窗口的位置(左上角像素坐标)
Platform.exit(); //终止JavaFX应用程序
primaryStage.setFullScreen(true);
primaryStage.setScene(new Scene(new Group())); //设置全屏,必需设置Scene
//设置高度变化监听
primaryStage.heightProperty().addListener(new ChangeListener() {
@Override
public void changed(ObservableValue extends Number> observable, Number oldValue, Number newValue) {
System.out.println("当前高度 ==>" + newValue.intValue());
}
});
//设置宽度变化监听
primaryStage.widthProperty().addListener(new ChangeListener() {
@Override
public void changed(ObservableValue extends Number> observable, Number oldValue, Number newValue) {
System.out.println("当前宽度 ==>" +newValue.intValue() );
}
});
//设置窗口位置X轴坐标监听
primaryStage.xProperty().addListener(new ChangeListener() {
@Override
public void changed(ObservableValue extends Number> observable, Number oldValue, Number newValue) {
System.out.println("窗口X轴坐标= " + newValue.intValue());
}
});
//设置窗口位置Y轴坐标监听
primaryStage.yProperty().addListener(new ChangeListener() {
@Override
public void changed(ObservableValue extends Number> observable, Number oldValue, Number newValue) {
System.out.println("窗口Y轴坐标= " + newValue.intValue());
}
});
实例代码
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
// 添加标题
primaryStage.setTitle("JavaFX");
// 设置图标
primaryStage.getIcons().add(new Image("ico/tim.png"));
// 设置最小化
//primaryStage.setIconified(true);
//设置最大化
// primaryStage.setMaximized(true);
// 关闭窗口
// primaryStage.close();
//设置窗口宽度和高度
primaryStage.setWidth(500);
primaryStage.setHeight(500);
// 设置窗口大小是否可调整
// primaryStage.setResizable(false);
// 设置窗口最大宽高
primaryStage.setMaxWidth(1000);
primaryStage.setMaxHeight(1000);
// 获取窗口宽高
System.out.println("宽度= " + primaryStage.getWidth());
System.out.println("高度= " + primaryStage.