JavaFX开发桌面应用-窗口 stage

1:aplication的生命周期

关于生命周期 我们可以以一个例子开始

package application;

import javafx.application.Application;
import javafx.stage.Stage;

/**
 * init()和stop()方法可以不用写 
 * */
public class Main extends Application {
	@Override
	public void init() throws Exception {
		
		System.out.println("application初始化");
	}

	@Override
	public void start(Stage primaryStage) throws Exception {
		System.out.println("application开始");
		primaryStage.setHeight(100);
		primaryStage.setWidth(100);
		primaryStage.show();
		
	}

	@Override
	public void stop() throws Exception {
		
		System.out.println("application结束");
	}
	
	public static void main(String[] args) {
		launch(args);
	}
}

对与上述代码 我们执行后发现会弹出一个100X100的窗口 此时控制台会输出init()和start()方法的打印,当点击窗口的"x"关闭窗口后控制台会打印stop()方法里面的打印

2:stage的基本功能

stage为窗口 就是一个应用的最外层 ,使用start方法的Stage primaryStage对象可以设置stage的宽度、高度、icon图标、窗口是否可拉伸、最大/最小拉伸等...  比较多 可以参考API(JDK1.8以上的API才行)

参考代码如下

package application;

import javafx.application.Application;
import javafx.scene.image.Image;
import javafx.stage.Stage;

/**
 * init()和stop()方法可以不用写 
 * */
public class Main extends Application {

	@Override
	public void start(Stage primaryStage) throws Exception {
		//设置stage的宽度 高度
		primaryStage.setHeight(300);
		primaryStage.setWidth(300);
		
		//设置窗口标题
		primaryStage.setTitle("stage case1");
		
		//设置图标  
		primaryStage.getIcons().add(new Image("./img/icon.png"));
		
		//设置固定高度 宽度 即高 宽不能拉伸
		//默认为true可以拉伸 设置Resizable为false表示不能拉伸
		primaryStage.setResizable(false);
		
		
		primaryStage.show();
		
	}

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

运行结果如下:

3:stage的其他设置

3.1:设置创库透明度

//设置窗口的透明状态 0~1之间的double值 0表示全透明 1表示不透明
primaryStage.setOpacity(0.7);

3.2:窗口一直置顶展示

//setAlwaysOnTop设置窗口置顶显示 默认为false 设置为true后 窗口会置顶展示
primaryStage.setAlwaysOnTop(true);

4:stage风格设置

stage的风格设置有5种 ,如下 其中第一种为默认的风格,除此之外最常用的就是第四和第五种风格

4.1:风格的设置

第一种:默认风格

扫描二维码关注公众号,回复: 5872466 查看本文章
//一般情况下JavaFX默认为第一种风格
primaryStage.initStyle(StageStyle.DECORATED);

第五种:没有最小化 最大化按钮 只有关闭按钮

primaryStage.initStyle(StageStyle.UTILITY);

猜你喜欢

转载自blog.csdn.net/hujyhfwfh2/article/details/89055134