当前位置: 首页 > 知识库问答 >
问题:

在Javafx中处理CSS错误

米承嗣
2023-03-14

我正在编写一个JavaFX程序,其中用户输入一个颜色的十六进制值,并将其设置为StakePane的背景颜色。代码为:

StakePane.StyleProperty().SetValue(“-FX-background-color:”+inputValue+“;”);

对于有效的十六进制值输入,它可以正常工作。但是当用户输入无效十六进制值时,它会在控制台出现以下错误:

“需要从解析器中检测错误的应用程序可以向com.sun.javafx.css.StyleManager的errors属性添加一个侦听器。”

如何处理JavaFX中的CSS错误?

共有1个答案

盖绪
2023-03-14

这样的错误不会引发真正的java异常。相反,负责将CSS应用到场景的全局StyleManager只打印一个警告。
但令人高兴的是,StyleManager保存了一个包含所有发生的错误的可观察列表。如参考指南所述,您可以简单地向其添加一个侦听器。您会收到通知,并可以相应地处理错误。

com.sun.javafx.css.StyleManager.errorsProperty().addListener((ListChangeListener<? super CssError>) c -> {
        while(c.next()) {
            for(CssError error : c.getAddedSubList()) {
                // maybe you want to check for specific errors here
                System.out.println(error.getMessage());
            }
        }
    });

但我认为在您的情况下,最好在将输入字符串应用到CSS之前检查其格式是否有效;)

 类似资料:
  • 我的JFrame中有一个web浏览器,我想我无法让它在退出应用程序时处理它。 以下是我试图实现这一目标的代码: 窗口关闭,但java进程保持不变,这一行总是返回false:

  • 我现在正在使用JavaFX,我正在跟随一个教程来学习Java的这一部分。不过,我有一个关于属性的问题: 如何正确处理JavaFX中的派生属性? 让我以一个例子来澄清。假设您有一个具有简单属性的模型: null 但是,表视图不接受整数,而只接受可观察的整数。如果有人更改用户的生日,我希望表自动更改。 我可以在中创建,但我不认为这是一个解决方案。我还可以在类中创建一个名为的,但我听起来不太对,因为ag

  • 我正在创建一个JavaFX应用程序。我可以启动应用程序并登录,但当我尝试访问客户场景时,会出现以下错误: (提前为所有代码道歉 这里是CustomerScene。fxml: 以下是我的控制器类(正在进行中): 错误说它找不到事件处理程序。我不知道为什么,因为我已将@FXML附加到函数。我还尝试将函数公开(fxml文档仍然建议这两者,在第27行显示错误-

  • 了解您可以如何在 Dreamweaver 中处理和编译 CSS 预处理器文件。 CSS 预处理器可将用预处理语言编写的代码编译到最熟悉的 CSS 中。预处理语言可将 CSS 提升到更接近编程语言的级别。 具体来说,预处理器允许您使用变量、组合单元、函数以及许多其他 在 CSS 中无法使用的方法。通过 CSS 预处理器,您只需定义所有内容一次,然后即可反复重用它们,从而产生可维护、主题化、可扩展的

  • 我正在使用一个旋转控制器来接受整数值。如何限制输入只接受整数?目前,当输入字符串值时,我会在控制台中得到错误消息。我不想让纺纱机接受任何其他类型-例如。双或串。 另外,如何在旋转器上实现错误处理?

  • 问题内容: 我刚刚开始使用最新的Java7 SDK在IntelliJ中构建JavaFX应用程序。 我已经使用Oracle Scene Builder构建了界面,所有内容都可以运行并在预览中显示良好,但是当我尝试编译程序时,出现以下错误 根据JavaFX Documentation判断,我的FXML中的行似乎无效。 有人知道我为什么收到此错误吗?(如果我删除了指向样式表的链接,则程序可以正常编译,因