gpt4 book ai didi

java - 使用 Javafx 时如何关闭 CSS 日志记录?

转载 作者:行者123 更新时间:2023-11-29 08:30:24 24 4
gpt4 key购买 nike

我正在用 Java FX 构建我的第一个应用程序。 (java.runtime.version=1.8.0_71-b15) 在 Eclipse Java EE IDE 中为 Web 开发人员编码。版本:Mars.2 Release (4.5.2) Build id:20160218-0600

当我绑定(bind)我的 CSS 文件时,我的控制台开始充斥着如下错误消息:

Feb 14, 2018 4:13:25 PM javafx.scene.CssStyleHelper calculateValue
WARNING: Could not resolve '-fx-text-base-color' while resolving lookups for '-fx-text-fill' from rule '*.button' in stylesheet jar:file:/Z:/Java/jdk1.8.0_71/jre/lib/ext/jfxrt.jar!/com/sun/javafx/scene/control/skin/modena/modena.bss
Feb 14, 2018 4:13:25 PM javafx.scene.CssStyleHelper calculateValue
WARNING: Could not resolve '-fx-shadow-highlight-color' while resolving lookups for '-fx-background-color' from rule '*.button' in stylesheet jar:file:/Z:/Java/jdk1.8.0_71/jre/lib/ext/jfxrt.jar!/com/sun/javafx/scene/control/skin/modena/modena.bss

这是一个已知的错误,显然无法在 Java 8 中修复,希望在 Java 9 中得到修复。与此同时,网上人们似乎提供的最佳建议是关闭 CSS 日志记录。这是来自该网站 ( https://bitbucket.org/controlsfx/controlsfx/issues/373/css-warnings-using-propertysheet-control ) 的非常建议:

我不知道还有多少事情可以做 - 它看起来更像是一个通用的 JavaFX 问题,而不是与 ControlsFX 相关的问题。视觉效果似乎没有受到影响,因此一种选择是简单地关闭 CSS 日志记录,如下所示:

com.sun.javafx.Logging.getCSSLogger().setLevel(Level.OFF);

(这个问题也在 SO 上讨论过:Java error on CSS 和其他地方:https://community.oracle.com/thread/2496427?tstart=0 但我没有成功地找到一个实际的解决方案。我能找到的唯一实用的建议是首先帖子,本质上是说,“使用此命令关闭 CSS 日志记录”:

com.sun.javafx.Logging.getCSSLogger().setLevel(Level.OFF);

我可以关闭日志记录,我的问题是......我该如何使用这个命令?提出这个建议的发帖人只是留下了命令,没有说放在哪里什么的。他(或她)正在用我没有听懂的速记方式说话。

有谁知道在哪里应用这个命令?在 CSS 文件中?或者在实际的 Java 代码中?如果是这样,“com.sun.javafx.Logging”会是……元素路径吗?或者这是 Eclipse 中的设置?

非常感谢,-RAO

最佳答案

在 Java 8u144 中,内部 JavaFX 日志实用程序的包是 com.sun.javafx.util,而不是 com.sun.javafx,因此您需要调用:

com.sun.javafx.util.Logging.getCSSLogger()
.setLevel(sun.util.logging.PlatformLogger.Level.OFF);

至少对于那个版本。

在该示例调用中,我完全限定了 Level 类,否则它可能会产生歧义,因为它不同于标准的 java.util.logging.Level

对于 Java 9,这是行不通的,您会收到编译器错误:

Error:(20, 23) java: package com.sun.javafx.util is not visible (package com.sun.javafx.util is declared in module javafx.graphics, which does not export it to the unnamed module).

使用 Java 9,也许您可​​以定义自己的 LogFinder它通过忽略发送给它的消息来处理 "javafx.css" 记录器(它是您在查看 JavaFX 源代码时找到的记录器名称的文本字符串)的平台日志记录。

使用 logging.properties 可能有更简单的方法文件适用于大多数 Java 版本,但我对平台日志系统不够熟悉,不知道这是否可行。

是的,一切都异常复杂。 . .

关于java - 使用 Javafx 时如何关闭 CSS 日志记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48796581/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com