更改JavaFX TabPane背景

时间:2013-04-21 12:41:40

标签: background javafx

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

如果有人知道如何解决这个问题,我真的很感激帮助。

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

1 个答案:

答案 0 :(得分:1)

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

JavaFX Image (PNG) transparency crispness being lost when rendering

可能会在即将发布的(即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;
  }
}