JavaFX如何实现模态窗口
2017-01-11 01:09
411 查看
JavaSE中,使用JOptionPane.show***window可以生产模态的对话框窗口,即用户必须点击对话框的按钮后,才能返回主窗口继续操作,否则无法进行其他操作。但是JavaFX
897d
中没有提供类似JOptionPane的静态类来生成弹出的对话框窗口,若自己写的话,应该如何实现模态呢?
下面是一个实现dialog box:
import javafx.stage.*;
import javafx.scene.*;
import javafx.scene.paint.Color;
import javafx.scene.control.*;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
public class ModalDialog {
Button btn;
public ModalDialog(final Stage stg) {
btn = new Button();
final Stage stage = new Stage();
//Initialize the Stage with type of modal
stage.initModality(Modality.APPLICATION_MODAL);
//Set the owner of the Stage
stage.initOwner(stg);
stage.setTitle("Top Stage With Modality");
Group root = new Group();
Scene scene = new Scene(root, 300, 250, Color.LIGHTGREEN);
btn.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent event) {
stage.hide();
}
});
btn.setLayoutX(100);
btn.setLayoutY(80);
btn.setText("OK");
root.getChildren().add(btn);
stage.setScene(scene);
stage.show();
}
}
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
public class ModalTest extends Application {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Application.launch(ModalTest.class, args);
}
@Override
public void start(final Stage primaryStage) {
primaryStage.setTitle("Hello World");
Group root = new Group();
Scene scene = new Scene(root, 500, 450, Color.LIGHTBLUE);
Button btn = new Button();
btn.setLayoutX(250);
btn.setLayoutY(240);
btn.setText("Show modal dialog");
btn.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent event) {
ModalDialog md = new ModalDialog(primaryStage);
}
});
root.getChildren().add(btn);
primaryStage.setScene(scene);
primaryStage.show();
}
}
897d
中没有提供类似JOptionPane的静态类来生成弹出的对话框窗口,若自己写的话,应该如何实现模态呢?
下面是一个实现dialog box:
import javafx.stage.*;
import javafx.scene.*;
import javafx.scene.paint.Color;
import javafx.scene.control.*;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
public class ModalDialog {
Button btn;
public ModalDialog(final Stage stg) {
btn = new Button();
final Stage stage = new Stage();
//Initialize the Stage with type of modal
stage.initModality(Modality.APPLICATION_MODAL);
//Set the owner of the Stage
stage.initOwner(stg);
stage.setTitle("Top Stage With Modality");
Group root = new Group();
Scene scene = new Scene(root, 300, 250, Color.LIGHTGREEN);
btn.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent event) {
stage.hide();
}
});
btn.setLayoutX(100);
btn.setLayoutY(80);
btn.setText("OK");
root.getChildren().add(btn);
stage.setScene(scene);
stage.show();
}
}
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
public class ModalTest extends Application {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Application.launch(ModalTest.class, args);
}
@Override
public void start(final Stage primaryStage) {
primaryStage.setTitle("Hello World");
Group root = new Group();
Scene scene = new Scene(root, 500, 450, Color.LIGHTBLUE);
Button btn = new Button();
btn.setLayoutX(250);
btn.setLayoutY(240);
btn.setText("Show modal dialog");
btn.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent event) {
ModalDialog md = new ModalDialog(primaryStage);
}
});
root.getChildren().add(btn);
primaryStage.setScene(scene);
primaryStage.show();
}
}
相关文章推荐
- Spring 框架的搭建及测试
- SVN与eclipse集成安装步骤_百度经验
- Face++与Java简单应用
- Spring源码--关于AccessController.doPrivileged
- Vaadin学习笔记——使用Netbeans创建Vaadin项目
- wsimport的使用
- 【框架整合】Maven-SpringMVC3.X+Spring3.X+MyBatis3-日志、JSON解析、表关联查询等均已配置好
- Spring框架(一)环境搭建、配置(xml、注解)、整合JDBC以及项目详解
- java项目导出jar时图片等资源无法加载问题
- spring依赖注入 报空指针问题
- java生成图片验证码
- javap
- Java Dump
- 【读书笔记】疯狂java讲义学习(二)—— 数据类型和运算符
- 【读书笔记】疯狂java讲义学习(三)—— 流程控制
- eclipse关闭Updating Error Reporting Database
- MyEclipse修改web项目的访问路径
- Eclipse快捷键大全
- java.util.ResourceBundle.getBundle()方法实例
- JAVA 中从应用场景中来总结反射的使用