我创建了一个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显示错误“从内部类内部访问变量'标签',需要是最终的或有效的最终的”
无论如何,我想删除所有先前的标签并再次设置新标签,因为此程序运行等待列表数组时会更新。
答案 0 :(得分:0)
很难从您的问题中看出来,但是如果您只想显示唯一的标签,那么您的waitingRoom
数组应该是不允许重复值的数据类型。阅读HashSet
上的Java文档。