javaFX创建一个弹出窗口

Creating a Pop-Up Window in JavaFX

如果你读过我发布的关于在javaFX中如何切换场景的文章, 你应该注意到在程序运行的整个期间, 只有一个窗口。但是如果你想要弹出一个窗口该怎么办呢?途径非常相似但又有点不同,当你想从原始窗口切换到新的窗口时候,你需要运用一点变化,关键是创建另一个stage。

Pop-up Window Java-FX Style

1.声明需要的控制块

2.构建控制块

3.构建面板

4.创建scene和state

5.按钮的点击方法

public class PopUpThing extends Application {
   // 声明 各个组件
   Button btnscene1, btnscene2;
   Label lblscene1, lblscene2;
   FlowPane pane1, pane2;
   Scene scene1, scene2;
   Stage thestage, newStage;
   @Override
   public void start(Stage primaryStage) {
     thestage=primaryStage;
     //参数转存 方法外可使用
     //创建组件
     btnscene1=new Button("Click to go to Other Scene");
     btnscene2=new Button("Click to go back to First Scene");
     btnscene1.setOnAction(e-> ButtonClicked(e));
     btnscene2.setOnAction(e-> ButtonClicked(e));
     lblscene1=new Label("Scene 1");
     lblscene2=new Label("Scene 2");
     //创建面板
     pane1=new FlowPane();
     pane2=new FlowPane();
     pane1.setHgap(20);
     pane2.setVgap(10);
     //set background color of each Pane
     pane1.setStyle("-fx-background-color:tan;-fx-padding:10px;");
     pane2.setStyle("-fx-background-color:red;-fx-padding:10px;");
     //组件加入面板
     pane1.getChildren().addAll(lblscene1, btnscene1);
     pane2.getChildren().addAll(lblscene2, btnscene2);
     //make 2 scenes from 2 panes
     scene1 = new Scene(pane1, 200, 100);
     scene2 = new Scene(pane2, 200, 100);
     //创建另一个stage
     newStage = new Stage();
     newStage.setScene(scene2);
     //指定 stage 的模式
     newStage.initModality(Modality.APPLICATION_MODAL);
     newStage.setTitle("Pop up window");
     
     primaryStage.setTitle("Hello World!");
     primaryStage.setScene(scene1);
     primaryStage.setMinWidth(300);
     primaryStage.show();
}
public void ButtonClicked(ActionEvent e)
 {
     if (e.getSource()==btnscene1)
         newStage.showAndWait();
     else
         newStage.close();
 }

这步骤可算是模板了

你可能感兴趣的:(javaFx)