我試圖在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