1

我正在 javaFx 中开发一个应用程序,我正在使用 TabPane 来组织内容。我的问题是,当我将一个节点作为选项卡的内容,然后设置同一节点的背景时,背景颜色变得有点模糊,正如您在图像中看到的那样,背景颜色是在 css 中定义的文件。

如果有人知道如何解决这个问题,将非常感谢您的帮助。

http://i.stack.imgur.com/h3gNH.png

4

1 回答 1

1

我认为你是这个问题的受害者:

渲染时 JavaFX 图像 (PNG) 透明度清晰度丢失

它可能会在即将发布的(即 Java 8)版本中得到修复。

目前,您可以使用链接问题的答案中记录的解决方法。为此,请将您的图像放在 CenteredRegion 中,并将其用作放置在选项卡中的 StackPane 的第一个元素。然后通过将内容添加到 StackPane 将其余选项卡内容叠加到图像上。这有点尴尬,对于您的特定情况可能会有更直接的解决方案。

class CenteredRegion extends Region {
  private Node content;

  CenteredRegion(Node content) {
    this.content = content;
    getChildren().add(content);
  }

  @Override protected void layoutChildren() {
    content.relocate(
      Math.round(getWidth()  / 2 - content.prefWidth(USE_PREF_SIZE)  / 2), 
      Math.round(getHeight() / 2 - content.prefHeight(USE_PREF_SIZE) / 2)
    );
  }

  public Node getContent() {
    return content;
  }
}
于 2013-04-22T02:26:55.553 回答