如何拦截弹出窗口的隐藏以验证字段

三部曲

我有一个弹出窗口,TextField在它的右键单击上显示。它会自动隐藏,但是如果字段中的值不是数字,我想防止它隐藏。根据一些验证,单击时如何使用“隐藏事件”。

在此处输入图片说明

这是我的代码:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.input.MouseButton;
import javafx.scene.layout.HBox;
import javafx.scene.layout.StackPane;
import javafx.stage.Popup;
import javafx.stage.Stage;
import javafx.stage.WindowEvent;
import org.apache.commons.lang3.math.NumberUtils;


public class Test extends Application
{

    @Override
    public void start(Stage primaryStage)
    {
        HBox root = new HBox();

        TextField textField = new TextField();

        Popup popup = new Popup();
        popup.setAutoHide(true);
        popup.getContent().clear();
        popup.getContent().addAll(textField);

        popup.setOnCloseRequest((WindowEvent event) ->
        {
            if (NumberUtils.isParsable(textField.getText()))
            {
                System.out.println("is a number");
                textField.setStyle(null);
            } else
            {
                System.out.println("enter a number");
                textField.setStyle("-fx-border-color: red ; -fx-border-width: 1px ;");
                event.consume();
            }
        });

        Label label = new Label("click here");
        StackPane labelPane = new StackPane(label);

        label.setOnMouseClicked(event ->
        {
            if (event.getButton() == MouseButton.SECONDARY)
            {
                if (!popup.isShowing())
                {

                    popup.show(labelPane, event.getScreenX() + 10, event.getScreenY());
                }
            }
        });

        root.getChildren().add(labelPane);
        Scene scene = new Scene(root, 300, 250);

        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args)
    {
        launch(args);
    }


}
adxl

一种解决方案是在上添加一个侦听器,该侦听器TextFieldPopup在验证时设置autoHide属性:

textField.textProperty().addListener(c->
                        {
                             if(NumberUtils.isParsable(textField.getText()))
                             {
                                 popup.setAutoHide(true);
                                 textField.setStyle(null);
                             }else {
                                popup.setAutoHide(false);
                                textField.setStyle("-fx-border-color: red ; -fx-border-width: 1px ;");
                             }
                         });

Popup如果当前内容类型不是数字,则这将不允许隐藏。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用ajax隐藏弹出窗口

来自分类Dev

如何隐藏复制/粘贴弹出窗口

来自分类Dev

如何拦截和提取接收弹出窗口的内容

来自分类Dev

我如何拦截离子框架中的弹出窗口?

来自分类Dev

隐藏xfoil弹出窗口

来自分类Dev

jTextField验证弹出窗口

来自分类Dev

在打开另一个弹出窗口时如何隐藏活动弹出窗口?

来自分类Dev

单击新弹出窗口时,如何隐藏页面上的弹出窗口?

来自分类Dev

如何显示隐藏在导航栏后面的弹出窗口

来自分类Dev

隐藏时如何为弹出窗口设置动画?

来自分类Dev

如何使用jQuery显示隐藏和显示模式弹出窗口

来自分类Dev

隐藏时如何为弹出窗口设置动画?

来自分类Dev

如何使用动画隐藏点击外部的弹出窗口

来自分类Dev

如何在C#中验证消息框弹出窗口?

来自分类Dev

如何在弹出窗口中显示jquery验证错误消息?

来自分类Dev

如何从Odoo的弹出窗口中获取父表单的字段?

来自分类Dev

在Chrome中使用jQuery隐藏基本身份验证弹出窗口

来自分类Dev

表单验证弹出窗口失败

来自分类Dev

如何在模式窗口弹出窗口上隐藏滚动条

来自分类Dev

隐藏除当前弹出窗口之外的所有弹出窗口?

来自分类Dev

如何在没有警报消息/弹出窗口的情况下两次验证字段?对不起,如果重复只是提供我链接

来自分类Dev

弹出验证错误消息以主窗体显示,而不是在弹出窗口中显示如何解决它

来自分类Dev

为什么我有 2 个不同的必填字段验证弹出窗口

来自分类Dev

如果from字段无效,如何隐藏Bootstrap模态窗口

来自分类Dev

WPF - 如何访问窗口代码隐藏中的公共字段类型

来自分类Dev

AngularJS字段验证->样式“弹出”

来自分类Dev

如何聚焦弹出窗口?

来自分类Dev

如何刷新弹出窗口

来自分类Dev

如何显示弹出窗口

Related 相关文章

  1. 1

    如何使用ajax隐藏弹出窗口

  2. 2

    如何隐藏复制/粘贴弹出窗口

  3. 3

    如何拦截和提取接收弹出窗口的内容

  4. 4

    我如何拦截离子框架中的弹出窗口?

  5. 5

    隐藏xfoil弹出窗口

  6. 6

    jTextField验证弹出窗口

  7. 7

    在打开另一个弹出窗口时如何隐藏活动弹出窗口?

  8. 8

    单击新弹出窗口时,如何隐藏页面上的弹出窗口?

  9. 9

    如何显示隐藏在导航栏后面的弹出窗口

  10. 10

    隐藏时如何为弹出窗口设置动画?

  11. 11

    如何使用jQuery显示隐藏和显示模式弹出窗口

  12. 12

    隐藏时如何为弹出窗口设置动画?

  13. 13

    如何使用动画隐藏点击外部的弹出窗口

  14. 14

    如何在C#中验证消息框弹出窗口?

  15. 15

    如何在弹出窗口中显示jquery验证错误消息?

  16. 16

    如何从Odoo的弹出窗口中获取父表单的字段?

  17. 17

    在Chrome中使用jQuery隐藏基本身份验证弹出窗口

  18. 18

    表单验证弹出窗口失败

  19. 19

    如何在模式窗口弹出窗口上隐藏滚动条

  20. 20

    隐藏除当前弹出窗口之外的所有弹出窗口?

  21. 21

    如何在没有警报消息/弹出窗口的情况下两次验证字段?对不起,如果重复只是提供我链接

  22. 22

    弹出验证错误消息以主窗体显示,而不是在弹出窗口中显示如何解决它

  23. 23

    为什么我有 2 个不同的必填字段验证弹出窗口

  24. 24

    如果from字段无效,如何隐藏Bootstrap模态窗口

  25. 25

    WPF - 如何访问窗口代码隐藏中的公共字段类型

  26. 26

    AngularJS字段验证->样式“弹出”

  27. 27

    如何聚焦弹出窗口?

  28. 28

    如何刷新弹出窗口

  29. 29

    如何显示弹出窗口

热门标签

归档