java如何删除具有相同对象名的JavaFx标签
我创建了一个java程序来创建预订系统,我必须创建一个GUI。在GUI中,我创建了多个具有相同对象名称的标签。我使用了gridPane布局
`for(int i = 0; i< waitingRoom.length; i++){
if( waitingRoom[i] != null) {
label = new Label(count +". "+ waitingRoom[i].getName());
count++;
label.setFont(new Font("Cambria", 20));
gridPane.add(label,1,count);
//styles for a label
label.setFont(new Font("Cambria", 18));
label.setMinHeight(30);
label.setMinWidth(120);
label.setAlignment(Pos.CENTER);
label.setStyle("-fx-border-style: solid inside;");
label.setStyle("-fx-border-width: 5;");
label.setStyle("-fx-text-align:center;");
label.setStyle("-fx-border-color: black;");
}
}`
现在我想删除所有这些标签并重新创建新标签,但当我尝试以下方法时:
label.getParent().getChildren().remove(label);
IDE显示错误“变量'label'是从内部类访问的,需要是final或有效final”
无论如何,我想删除所有以前的标签,并再次设置新标签,因为当这个程序运行等待列表数组更新时
# 1 楼答案
很难从你的问题中分辨出来,但是如果你只想显示唯一的标签,那么你的
waitingRoom
数组应该是不允许重复值的数据类型。阅读HashSet
上的Java文档