我试图在Excel的标签(真的是TableCell)的左上角或右上角画一个三角形。 JavaFX labelPadding文档说:Javafx Labeled labelPaddingProperty - 在左上角或右上角添加三角形
Labeled的文本和图形内容周围的填充。默认情况下,labelPadding是Insets.EMPTY,不能设置为null。 子类可以在此填充之外和Labeled的填充内添加节点。此属性只能从CSS设置。
因此,我认为我可以在上面设置样式为10px,然后将多边形添加到标签,但是在填充工作时,多边形不绘制。例如,如果我插入这个场景我希望得到上述喂一粉角:
public class JxLabeled extends Labeled {
public JxLabeled() {
setText("Hello");
Polygon polygon = new Polygon();
polygon.getPoints().addAll(new Double[]{
0.0, 0.0, 10.0, 0.0, 0.0, 10.0 });
polygon.setFill(Color.PINK);
getChildren().add(polygon);
setStyle("-fx-label-padding: 10 0 0 0;");
}
}
应该在哪里添加的多边形节点任何想法基于上述文档吗?
PS-我意识到我可以创建一个Group或StackedPane来做到这一点,但由于我在TableView中使用它并重写TableCell,我试图不为每个单元格创建一个复合对象。
THX
感谢你的帮助。我发现我必须将修复方法添加到在Excelcell中调用的ExcellCellSkin中:updateItem重新添加多边形,因为它似乎在将行添加到表和其他时间时被删除。但是因为皮肤并不总是在updateItem被调用时建立的,所以如果getSkin为null,我也使用了setSkin(createDefaultSkin)。再次感谢!!!! – JLK