`

JavaFX之对话框的创建

 
阅读更多

声明: 本博客文章原创类别的均为个人原创,版权所有。转载请注明出处:http://blog.csdn.net/ml3947,另外本人的个人博客:http://www.wjfxgame.com


在JavaFX的官方API中,是没有对话框相关的类。所以我们在需要使用对话框的时候,可以使用Swing的库。但是由于风格相差较大,更多的时候我们需要用JavaFX来创建对话框。

下面我们来看看怎么用JavaFX来创建一个对话框吧。


JavaFX用于创建对话框的类是Stage,没错。JavaFX程序的起始界面也是一个Stage。

我们先用JavaFX Scene Builder来创建一个布局文件。

如图所示,是一个简单的提示框布局,命名为AlertDialog.fxml。

然后修改XML文件如下图所示:

根部用fx:root标签,然后指定根部的类型为javafx.scene.layout.AnchorPane,注意,这里要跟后面代码里相对应。然后把之前的布局文件用<children>标签包含起来。


下面是我们事件代码:

import java.io.IOException;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.TitledPane;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;
import javafx.stage.StageStyle;

/**
 *
 * @author Wing
 */
public class WiAlertDialog  extends AnchorPane{
    @FXML
    Label alertMessage;
    @FXML
    TitledPane alertTitledPane;
    
    private static WiAlertDialog wiAlertDialog;
    private static Stage  newAlertDialog ;
    
    private  WiAlertDialog(String message) {
        FXMLLoader fXMLLoader = new FXMLLoader(getClass().getResource("AlertDialog.fxml"));
        fXMLLoader.setRoot(WiAlertDialog.this);
        fXMLLoader.setController(WiAlertDialog.this);
        try {
            fXMLLoader.load();
        } catch (IOException exception) {
            throw new RuntimeException(exception);
        }
        alertTitledPane.setFocusTraversable(false);
        alertMessage.setText(message);
    }
    
    public static void showAlertDialog(String message) {
        newAlertDialog = new Stage(StageStyle.TRANSPARENT);
        newAlertDialog.setResizable(false);
        wiAlertDialog = new WiAlertDialog(message);
        newAlertDialog.setScene(new Scene(wiAlertDialog));
        newAlertDialog.show();
    }
    
    public static void hideAlertDialog() {
        if(newAlertDialog != null) {
            newAlertDialog.hide();
        }
    }

    @FXML
    private void onAlertOKClick(ActionEvent event) {
         WiAlertDialog.hideAlertDialog();
    }
}

我们先用FXMLLoader来载入FXML文件,然后设置根元素为当前,也就是AnchorPane。接着设置Controller为当前,也就是在FXML中指定的事件,我们可以在这里实现(例如后面的onAlertOKClick事件)。


然后我们用一个静态的showAlertDialog来显示对话框。

在showAlertDialog中,我们创建一个Stage,和一个包含当前界面的Scene。通过Stage.show来显示对话框,然后点击"确定"按钮后,执行onAlertOKClick来将Stage关闭。


下面我们来看看效果:

上下两个对话框均是这样实现的。

大家可以在JavaFX开发中尝试一下。


本博客文章原创类别的均为个人原创,版权所有。转载请注明出处:http://blog.csdn.net/ml3947,另外本人的个人博客:http://www.wjfxgame.com

-----------------------------------------------------------------------------------

有1,2个月没有写博客了。其实项目的事情并不算多,主要是Unity3D项目,美工的制作时间比较长。所以捣鼓了一段时间的JavaFX开发。在做一个多线程下载断点续传的下载工具。只当是熟悉一下。不过也觉得没得意思了,还是想从事游戏开发相关的内容。这个部分写几篇博客,可能又去继续玩Cocos2d-x了吧。

-----------------------------------------------------------------------------------

分享到:
评论

相关推荐

    创建模态对话框--对话框

    模态对话框(Modal Dialog Box)是对话框的一种类型,它强制用户在关闭对话框之前必须与之交互。这意味着用户不能访问父窗口或其他应用程序窗口,直到他们完成对话框中的操作并关闭它。这种特性使得模态对话框在需要...

    Simple-JavaFX-dialog:由于缺乏简单的 JavaFX 对话框而感到沮丧我创建了这个简单的对话框,以便不必升级我的 JavaFX 或使用库

    在给定的资源 "Simple-JavaFX-dialog" 中,开发者为了解决这个问题,创建了一个轻量级的 JavaFX 对话框组件。这个组件的目标是简化对话框的创建过程,避免升级现有的 JavaFX 版本或引入额外的库依赖。这样的解决方案...

    java点击按钮弹出对话框

    1. **JavaFX的对话框**:JavaFX没有直接等价于`JOptionPane`的类,但我们可以使用`Alert`类创建简单的对话框,或者创建自定义的`Dialog`类来获取更复杂的交互。例如,创建一个警告对话框: ```java Alert alert = ...

    JavaFX 教程 (中文).docx

    【JavaFX 教程】 JavaFX 是一个用于创建桌面、移动和嵌入式系统的富客户端应用的Java平台。本教程将深入讲解如何使用JavaFX 8进行应用开发,特别是涉及Scene Builder工具,...祝你学习愉快,开始你的JavaFX之旅吧!

    javafx显示多个窗口以及javafx多窗口之间数据交互传输项目原文件

    在这个“javafx显示多个窗口以及javafx多窗口之间数据交互传输项目原文件”中,我们可以学习到如何在JavaFX中创建并管理多个窗口,以及在这些窗口之间进行数据的交换和传递。 1. **创建JavaFX窗口** 在JavaFX中,...

    JavaFx 入门文档,JavaFx实例

    通过分析和实现提供的JavaFX实例,例如创建一个带有菜单栏、对话框和表单的复杂应用,你可以更好地理解JavaFX的设计模式和最佳实践。例如,可以创建一个简单的计时器应用,利用`Timeline`来控制时间的流逝,并更新UI...

    javafx有关的经典例子

    JavaFX提供了对话框API,用于创建警告、确认和输入对话框。这个例子会演示如何使用这些API。 7. **JavaFXCreatingImage**: 这个例子可能会讲解如何在JavaFX中加载、显示和处理图像。JavaFX的ImageView类可以方便地...

    对话框的几种实现方式

    在JavaFX中,可以使用`Stage`类和FXML布局文件来构建自定义对话框。 五、浮动对话框(Floating Dialog Box) 浮动对话框是一种特殊的非模态对话框,它可以自由移动,且通常用于工具栏或面板。在许多IDE(集成开发...

    JavaFx开发Windows画图板工具

    JavaFX的FileChooser类可以帮助我们创建一个文件对话框,让用户选择保存或打开的文件。文件格式通常选择支持矢量图形的SVG,或者常见的位图格式如PNG或JPEG。 最后,为了提高用户体验,我们可以添加一些额外特性,...

    javafx-文档.zip

    在JavaFX中,开发者可以使用Java语言或Groovy、Kotlin等现代 JVM 语言来编写代码,创建具有互动性和吸引力的图形用户界面。JavaFX的核心特性包括: 1. ** scenegraph**:JavaFX使用场景图(Scene Graph)作为其图形...

    JavaFx应用实例

    7. **模态对话框(Dialogs)**:JavaFX支持创建模态和非模态对话框,如警告、确认和输入对话框,增强用户交互体验。 8. **网络和HTTP请求**:JavaFX通过`javafx.scene.web`包提供了对Web内容的支持,可以加载HTML...

    JavaFx例子 大家看看

    在JavaFX中,我们可以创建各种对话框如信息对话框、确认对话框和输入对话框。同时,JavaFX提供了键盘事件监听器,可以捕捉用户的键盘输入,这对于游戏开发或特定的用户交互场景非常有用。 3. **Demo_MultipShell....

    模态对话框与应用程序之间的数据交换

    这些函数允许在对话框创建时传递一个用户定义的指针,这个指针可以指向包含数据的结构,从而实现数据交换。 4. Qt框架下的模态对话框: 在Qt中,`QDialog`类提供了`exec()`方法来显示模态对话框。数据交换可以通过...

    在固定位置创建子窗口,点击父窗口自动隐藏子窗口

    在编程领域,创建子窗口并在固定位置显示是常见的任务,特别是在开发GUI(图形用户界面)应用程序时。子窗口通常用于提供附加信息或功能,而父窗口则是主要的交互界面。这个场景中的“在固定位置创建子窗口,点击父...

    java 字体对话框

    总的来说,Java字体对话框的创建涉及到GUI设计、事件处理和平台兼容性等多个方面,是一个很好的练习,可以提升你对Java Swing或JavaFX的理解。通过实践,你可以创建出功能强大且用户友好的字体选择对话框,从而提升...

    设定对话框的大小

    对话框是一种临时的窗口,它出现在主应用程序窗口之上,用来显示特定的信息或获取用户的输入。它们可以是非模态(允许用户在对话框打开的同时继续与应用程序的其他部分交互)或模态(用户必须关闭对话框才能继续...

    javafx模拟磁盘管理系统

    在本项目"javafx模拟磁盘管理系统"中,开发者使用JavaFX创建了一个类似Windows操作系统中的文件管理器,用户可以通过这个应用进行文件和文件夹的操作。 在JavaFX中,开发者可以利用FXML(FXML是FXML Language的缩写...

    jAVAfx的增删改查demo文件

    - JavaFX是Oracle JDK的一部分,提供了一组用于创建桌面和跨平台应用程序的API。 - 它基于Scene Graph模型,允许开发者通过定义场景和节点来构建用户界面。 - JavaFX支持CSS样式,可以轻松地进行UI定制。 2. **...

    学习JavaFX脚本语言--中文PDF版

    9. **模态对话框和拖放功能**:JavaFX提供内置的模态对话框和拖放功能,方便开发常见的用户交互场景。 10. **JavaFX Scene Builder**:这是一款可视化的布局工具,可以帮助开发者快速构建和预览UI界面。 通过阅读...

    javaFX demos

    JavaFX的标签再次强调了这是关于JavaFX演示应用的资源,这可能包括了各种类型的示例,如图表、按钮、滑块、菜单、对话框等控件的使用,以及如何进行事件处理、布局管理、样式和皮肤定制等。 在压缩包“demos”中,...

Global site tag (gtag.js) - Google Analytics