【发布时间】:2017-03-17 23:48:00
【问题描述】:
我正在尝试像 Excel 一样在 Labeled(实际上是 TableCell)的左上角或右上角绘制一个三角形。 JavaFX labelPadding 文档说:
标签的文本和图形内容周围的填充。默认情况下 labelPadding 是 Insets.EMPTY 并且不能设置为 null。 子类可以在这个填充之外和标签的填充内添加节点。这个属性只能从 CSS 中设置。
因此,我认为我可以将样式设置为顶部 10px,然后将多边形添加到标签中,但是当填充起作用时,多边形不会绘制。例如,如果我将它插入到场景中,我希望在 Hello 上方有一个粉红色的角:
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;");
}
}
根据上述文档,有什么想法应该添加 Polygon 节点吗?
PS- 我意识到我可以创建一个 Group 或 StackedPane 来执行此操作,但由于我在 TableView 中使用它并覆盖 TableCell,我试图不为每个单元格创建一个复合对象。
谢谢
【问题讨论】:
标签: javafx