JavaFX图形化界面(一) Stage类

一. JavaFX图形化的基操

1.1 示意图

步骤

1.2 基本代码

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

public class javafx01 extends Application{
    @Override
    public void start(Stage stage) throws Exception{
        //舞台设置标题
        stage.setTitle("HelloWorld");

        //水平布局
        HBox hBox = new HBox();

        //控件
        Button button = new Button("登录");

        hBox.getChildren().add(button); //将控件添加到布局中

        //场景(将布局添加到场景)
        Scene scene = new Scene(hBox,200,200);

        //将场景添加到舞台中
        stage.setScene(scene);

        
        //设置舞台在电脑中的x轴,y轴坐标
        stage.setX(200);
        stage.setY(100);

        stage.show(); //舞台展示,要有这个才会有图形界面

    }
    //这是一个main方法,是程序的入口:
    public static void main(String[] args) {
        Application.launch(args);
    }
}

 在这段代码中,Application抽象类是JavaFX程序的入口,任何JavaFX程序都要继承该类并重写start()方法

二.Stage类(窗口)

2.1 Stage类的基本方法
  • setTitle() #设置窗口标题
  • getIcons() #改变窗口图标
  • setResizable() #默认窗口大小是可以改变的,如果为false,窗口大小是不可以改变的
  • setX(),setY() #修改窗口在屏幕中的位置 ,==但是我们一般设置窗口的宽高,而是设置场景的宽高
  • initStyle() #设置窗口的风格
  • initModality() #设置模态窗口(可以实现多窗口)
  • event事件
2.2 Stage类的代码实现
import javafx.application.Application;
import javafx.application.Platform;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.ButtonType;
import javafx.scene.image.Image;
import javafx.stage.Modality;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
import javafx.stage.Window;

import java.util.Optional;

public class javafx02 extends Application{
    @Override
    public void start(Stage stage) throws Exception{

        stage.setTitle("Hello");//设置窗口的标题

        //设置窗口图标
        stage.getIcons().add(new Image("#这个里面存放你想更改的窗口图标的地址"));

        //设置窗口大小
        stage.setResizable(true);

        //设置场景的宽高(一般设置场景的宽高来控制舞台的宽高)
        Scene scene = new Scene(new Group(),400,200);

        //设置舞台(窗口)的风格
        stage.initStyle(StageStyle.DECORATED);// 默认窗口样式
        stage.initStyle(StageStyle.UNDECORATED);//标题,图标,叉都没有
        stage.initStyle(StageStyle.TRANSPARENT);// 设置stage背景透明
        stage.initStyle(StageStyle.UNIFIED); // 设置stage白色背景
        stage.initStyle(StageStyle.UTILITY);//只有一个关闭按钮和标题


        //设置模态窗口(可以实现多窗口)
        stage.initModality(Modality.NONE); //设置默认的模态窗口(每个窗口都可以使用)
        stage.initModality(Modality.APPLICATION_MODAL);//可以打开多个窗口,但是当一个窗口运行的时候,其他窗口都是禁用的
        Window primaryStage = null;
        stage.initOwner(primaryStage); //在使用WINDOW_MODAL的时候,要指定父窗口
        stage.initModality(Modality.WINDOW_MODAL);//点开WINDOW_MODAL这个窗口时,非模态窗口可以使用,只有父窗口不可以使用


        //窗口的事件event(有最大化,最小化,隐藏,关闭,键盘事件等,下面介绍如何设置窗口的关闭事件,即会弹出提示框)
        Platform.setImplicitExit(false);//取消操作系统的默认退出
        stage.setOnCloseRequest(event->{
            event.consume();//取消关闭窗口的按钮(就是不会让你关闭窗口),既不关闭窗口也不退出程序
            Alert alert = new Alert(Alert.AlertType.CONFIRMATION); //实例提示框
            alert.setTitle("退出程序");
            alert.setHeaderText(null);
            alert.setContentText("你是否要退出程序?");

            Optional<ButtonType> result = alert.showAndWait();
            if(result.get() == ButtonType.OK){  //如果你选择确定,则关闭窗口
                Platform.exit();
            }



        });

        //设置舞台的宽高(如果场景和舞台都设置了宽高,那么优先显示舞台的宽高)
        stage.setScene(scene);
        stage.setWidth(100);
        stage.setHeight(100);
        stage.show();

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

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,您想了解有关使用JavaFX和图形用户界面输出图形的信息。JavaFX是一个用于构建丰富、交互式用户界面的框架,它提供了一组用于创建图形界面的和方法。其中包括用于绘制图形的,例如Canvas和GraphicsContext。您可以使用这些来创建各种形状和图像,并将它们呈现在JavaFX应用程序的窗口上。 下面是一个使用JavaFX绘制一个简单矩形的示例代码: ``` import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.canvas.Canvas; import javafx.scene.canvas.GraphicsContext; import javafx.scene.layout.StackPane; import javafx.scene.paint.Color; import javafx.stage.Stage; public class MyApplication extends Application { @Override public void start(Stage primaryStage) { Canvas canvas = new Canvas(300, 250); GraphicsContext gc = canvas.getGraphicsContext2D(); gc.setFill(Color.BLUE); gc.fillRect(50, 50, 200, 150); StackPane root = new StackPane(); root.getChildren().add(canvas); Scene scene = new Scene(root, 300, 250); primaryStage.setTitle("My JavaFX Application"); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } } ``` 在这个示例中,我们创建了一个Canvas对象,并获取了它的GraphicsContext对象。然后,我们使用GraphicsContext的fillRect()方法来绘制一个蓝色的矩形。最后,我们将Canvas添加到StackPane中,并将StackPane添加到Scene中。最终,我们将Scene设置为应用程序的主窗口,并显示它。 希望这个示例可以帮助您了解如何使用JavaFX和图形用户界面输出图形。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值