如何显示Facebook上已知的小红色图标,并在JavaFX应用程序的选项卡中通知新消息,朋友请求等?这是我到目前为止所尝试的:

<AnchorPane prefHeight="200" prefWidth="300.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
  <children>
      <TabPane prefHeight="200.0" prefWidth="220.0" tabClosingPolicy="UNAVAILABLE" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
        <tabs>
          <Tab text="TestTab"/>
        </tabs>
      </TabPane>
    <StackPane AnchorPane.leftAnchor="58.0" AnchorPane.topAnchor="1.0">
      <children>
        <Ellipse opacity="0.51" radiusX="9.0" radiusY="8.0" stroke="BLACK" strokeType="OUTSIDE" strokeWidth="0.5">
          <fill>
            <LinearGradient endX="0.95" endY="0.5" startY="0.5">
              <stops>
                <Stop color="#0096c9" />
                <Stop color="#3ec5ee" offset="1.0" />
              </stops>
            </LinearGradient>
          </fill>
        </Ellipse>
        <Label alignment="CENTER" prefWidth="20.0" text="3">
          <font>
            <Font size="10.0" />
          </font>
        </Label>
      </children>
    </StackPane>
  </children>
</AnchorPane>

我不认为这是一个很好的解决方案,因为StackPane绝对放置并且独立于Tab . 如果Tab被移动或调整大小或移除或者其他什么,Notification-StackPane可能会被放错 . 处理这些案件会很复杂 .

使用 javafx.scene.control.Tab#setGraphic 设置Notification-StackPane似乎是错误的方式,因为我不知道如何定位图形 . 有没有办法让图形与Tab重叠,以便图形的一部分在标签之外?它应该类似于上面的fxml示例 . 扩展Tab或其中一个TabHeader皮肤似乎很难;)我的经验是,许多有趣且相关的方法在JavaFX核心类中是私有的或最终的 . 你有什么好主意吗?