1. 程式人生 > >javaFX建立一個彈出視窗

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();
 }

這步驟可算是模板了