无法从stackpane javafx获取圆形节点

ih99xse1  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(216)

我试图创建一个圆圈,里面有一个图像,上面有文字。
所以我有一个 ArrayList 包含多个
StackPanes private ArrayList<Circle> castCircles = new ArrayList<>(); 堆栈窗格由 Circle 和一个 Text 节点。在这两个函数中,我将创建一个堆栈窗格并将其添加到 ArrayListStackPanes ```
public VBox addCrew(PersonCrew person){
VBox test = new VBox();
test.setPadding(new Insets(10,10,10,10));
StackPane personImageCircle = createCreditsImage();
crewCircles.add(personImageCircle);
Label personName = createCreditsLabel(person.getName());
Label personRole = createCreditsLabel(person.getDepartment());
test.getChildren().addAll(personImageCircle, personName, personRole);
return test;
}

public StackPane createCreditsImage(){
    StackPane stack = new StackPane();
    Text text = new Text();
    text.setFont(castFont);
    Circle cir2 = new Circle(50,50,50);
    cir2.setFill(Color.rgb(128, 128, 128, 0.1));//new ImagePattern(new Image("file:cast.jpg")));
    cir2.setStroke(Color.rgb(128, 128, 128, 0.2));
    cir2.setStrokeType(StrokeType.OUTSIDE);
    cir2.setStrokeWidth(5);

    stack.getChildren().addAll(cir2, text);
    stack.setLayoutX(30);
    stack.setLayoutY(30);

    return stack;
}
当我试图得到a时问题就出现了 `Circle` 从数组的stackpane中选择节点并编辑 `Circle` 节点。

for(int i=0; i<crew.size(); i++){
if(crew.get(i).getProfilePath() != "") {
crewCircles.get(i).getChildren().get(0).setFill(new ImagePattern((new Image("https://image.tmdb.org/t/p/w185" + crew.get(i).getProfilePath())), 0, -20, 100, 150, false));
}
}

这条线给我添麻烦了。 `crewCircles.get(i).getChildren().get(0).setFill(new ImagePattern((new Image("https://image.tmdb.org/t/p/w185" + crew.get(i).getProfilePath())), 0, -20, 100, 150, false));` 特别是 `...getChildren().get(0).setFill...` 我得到一个 `Cannot resolve method 'setFill' in 'Node'` 错误。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题