javaFX建立一個彈出視窗
阿新 • • 發佈:2018-12-17
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(); }
這步驟可算是模板了