2016-03-17 86 views
0

你好,我已經得到了下面的代碼,我在我的anchorpane中添加了一個圓圈,並且在我添加了一個文本的圓圈上。更改AnchorPane中文本的位置?

Circle是一個Circle,ArrayList,具有多個圓圈。

pane.getChildren().addAll(circle); 


     pane.getChildren().addAll(circle.stream().map(circ -> { 
      Label text = new Label(circ.getId()); 
      text.setAlignment(Pos.CENTER); 

      AnchorPane.setLeftAnchor(text, circ.getCenterX()); 
      AnchorPane.setTopAnchor(text, circ.getCenterY()); 
      return text; 
     }).toArray(Label[]::new)); 
} 

我可以改變從我的圓圈circle.get(i)所述位置.setCenterY();

但是,如何更改我添加到圓上的文本的位置?

預先感謝您

+0

您可以用您最初用來設置相同的代碼更改:'AnchorPane.setLeftAnchor(文字,newXValue)'。您可能需要更具體地瞭解實際問題。 –

+0

那個「地圖...」是做什麼的?當我想從外部訪問「文本」時,我不能在圈子更改位置時將文本更改爲相同的位置 – user3650191

+0

「這張地圖做了什麼?」是什麼意思?您編寫了該代碼。 –

回答

1

要訪問的標籤,你需要一個參考保留給他們,例如

pane.getChildren().addAll(circle); 

List<Label> labels = circle.stream().map(circ -> { 
    Label text = new Label(circ.getId()); 
    text.setAlignment(Pos.CENTER); 

    AnchorPane.setLeftAnchor(text, circ.getCenterX()); 
    AnchorPane.setTopAnchor(text, circ.getCenterY()); 
    return text; 
}).collect(Collectors.toList()); 


pane.getChildren().addAll(labels); 

現在當然你可以做

AnchorPane.setLeftAnchor(labels.get(i), newXValue); 
AnchorPane.setTopAnchor(labels.get(i), newYValue);