【问题标题】:UNIFIED StageStyle and Transparent Scene produce black background instead of transparentUNIFIED StageStyle 和透明场景产生黑色背景而不是透明
【发布时间】:2015-04-01 23:52:16
【问题描述】:

JavaFX 8 有 StageStyle.Unified,可以创建 OS X 风格的统一工具栏。我已经测试了以下代码在JDK 8u5中可以正常工作。(场景背景是透明的,按钮出现在舞台背景上。)

但是在 JDK 8u25 和 JDK 8u31 中有一个奇怪的行为。场景背景变为黑色。 将场景颜色更改为透明以外的任何颜色都可以正常工作,它会显示该颜色。

除非我遗漏了什么,否则它对我来说就像一个错误, 有什么想法吗?

public class UnifiedTest extends Application {

@Override
public void start(Stage primaryStage) {

    StackPane testPane = new StackPane();
    testPane.setStyle("-fx-background-color:transparent;");

    Label someText = new Label("TEXT AGAINST TRANSPARENT SCENE");
    testPane.getChildren().add(someText);

    Scene myScene = new Scene(testPane,500,500);
    myScene.setFill(Color.TRANSPARENT);



    primaryStage.setScene(myScene);
    primaryStage.initStyle(StageStyle.UNIFIED);
    primaryStage.setTitle("Application");
    primaryStage.show();
}


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

}

更多信息:

舞台背景是指操作系统提供的窗口背景。

我正在尝试创建一个统一的工具栏。根据 JavaFX 8 API 的方法是使用 StageStyle.UNIFIED。这将给出一个 OSX 提供的窗口。

没有添加场景时是这样的: http://imgur.com/iHEiVf0,fMbFr4e,bFSL8bA

但是,当我 setFill(Color.TRANSPARENT) 时,场景背景变为黑色: http://imgur.com/iHEiVf0,fMbFr4e,bFSL8bA#2

期望的结果是在第一个链接的背景下看到文本。它适用于 JDK 8u5,但现在我使用的是 8u31,而不是灰色,而是黑色。奇怪的是,如果我 setFill(Color.RED) 背景变成了预期的红色

来自 JavaFX 8 api: 公共静态最终舞台风格统一 用平台装饰定义舞台风格,消除客户区和装饰之间的边界。客户区背景与装饰统一。这是一个条件特性,要检查它是否受支持,请参见 Platform.isSupported(javafx.application.ConditionalFeature)。如果平台不支持该功能,则此样式降级为 StageStyle.DECORATED ` 注意:要查看覆盖舞台的场景应该具有 Color.TRANSPARENT 的效果

【问题讨论】:

  • 这是什么意思:“场景背景是透明的,按钮出现在舞台背景上”? JavaFX中没有舞台的背景属性,什么是“舞台背景”?你能提供 8u5 和 8u31 窗口的屏幕截图吗?如果您在 StackOverflow 上没有足够的声誉以在您的问题中包含图片,您可以将它们上传到 imgur.com
  • 太好了,这很有帮助。对我来说,这似乎是一个损坏的功能。在以下位置记录针对运行时项目的错误报告:javafx-jira.kenai.com
  • 非常感谢您查看。我在抓挠我的头,我错过了什么..

标签: css javafx


【解决方案1】:

看起来这是一个错误,已为 Java 8u60 修复:

Kevin Rushforth 在错误跟踪器上发表评论:

看起来回归是在 8u20 的某个时候引入的。

【讨论】:

  • 看来bug又存在了(Win7 with 8u92 and 8u112)
猜你喜欢
  • 1970-01-01
  • 2011-02-06
  • 1970-01-01
  • 2013-09-21
  • 1970-01-01
  • 2016-02-22
  • 2012-06-26
  • 2015-07-04
  • 2013-11-25
相关资源
最近更新 更多