如何在每个节点中更新具有自定义组件的JavaFX中的anchorPane?

时间:2015-01-12 10:59:34

标签: javafx-2

我有一个AnchorPane。它将保存自定义类summaryData的对象。

summaryData类如下

public summaryData (double rectX, double rectY, double width, double height) {
    rect = new Rectangle(rectX,rectY,width,height);
    rect.setStroke(javafx.scene.paint.Color.GRAY);
    rect.setFill(javafx.scene.paint.Color.TRANSPARENT);

    text  = new Text();

    text.setFont(Font.font(ChartFontUtil.getAverageFont().getFamily(),FontWeight.NORMAL,11));       

    text.setY(rectY+((rect.getHeight() + text.getFont().getSize())/2)-1);       
    text.setSmooth(true);
    getChildren().add(rect);
    getChildren().add(text);
}

现在,通过以下语句

将此类的对象添加到AnchorPane中
anchorPANE.getChildren().add(rectGroup);

其中rectGroup是类summaryData的对象。

现在我想更改此矩形上的文本集。所以我必须执行setText()。 但是如果要更新,我该如何联系到这个组件? 我的意思是我拥有锚定窗格的所有节点,如下所示

javafx.collections.ObservableList<Node> allRectGroups = anchorPANE.getChildren();

现在,是否有任何方法可以通过NODE

引用此rectGroup对象的子节点
for(Node node : allRectGroups)
{
    // can this node will have any access to the object of class summaryData ?
}

1 个答案:

答案 0 :(得分:2)

您需要将节点向下转换为SummaryCountRect,请尝试:

for(Node node : allRectGroups)
   {
     SummaryCountRect data = (SummaryCountRect) node ;
   }