关于窗口的切换和警告框的调用
//导入相关的工具包
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import javafx.scene.control.Button;
public class note2 extends Application{
//定义舞台和场景
Stage window;
Scene scene1,scene2;
@Override
public void start(Stage primaryStage) throws Exception{
window = primaryStage;
Label label1=new Label("this is first scene");
Button bt1=new Button("go to scene2");
//设置动作,点击按钮在舞台上设置新的场景
bt1.setOnAction(e -> window.setScene(scene2));
//将节点加入面板
VBox vbox=new VBox();
vbox.getChildren().addAll(label1,bt1);
//将面板加入场景
scene1=new Scene(vbox,500,500);
Label label2=new Label("this is second scene");
Button bt2=new Button("return to first scene"),alertButton=new Button("alertWindow");
bt2.setOnAction(e -> window.setScene(scene1));
//点击按钮,创建警告框,AlertWindow的代码在下面给出
alertButton.setOnAction(event -> AlertWindow.display("这是警告框","这是警告内容"));
VBox vb2=new VBox();
vb2.getChildren().addAll(label2,bt2,alertButton);
scene2=new Scene(vb2,300,200);
//在舞台上展示场景1
window.setScene(scene1);
window.setTitle("switch scene test");
window.show();
}
}
接下来是AlertWindow的代码
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.stage.Modality;
import javafx.stage.Stage;
public class AlertWindow {
//通过创建AlertWindow对象,调用display方法创建警告框
public static void display(String title,String message){
Stage window=new Stage();
//设置运行模式为Modality.APPLICATION_MODAL,阻止用户与之前窗口进行交互
window.initModality(Modality.APPLICATION_MODAL);
window.setTitle(title);
window.setMinWidth(300);
Label label=new Label();
label.setText(message);
Button closeButton=new Button("关闭该窗口");
closeButton.setOnAction(event -> window.close());
VBox vBox=new VBox(10);
vBox.getChildren().addAll(label,closeButton);
vBox.setAlignment(Pos.CENTER);
Scene scene=new Scene(vBox);
window.setScene(scene);
window.showAndWait();
}
}
通过以上两段代码就实现了JavaFX的窗口切换和警告框的创建
点击按钮,切换到场景2
点击按钮选择返回窗口或者建立警告框