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

这步骤可算是模板了

  • 4
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值