如何在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核心类中是私有的或最终的。你有什么好主意吗?