我创建了一个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 显示错误“变量‘标签’是从内部类中访问的,需要是最终的或有效的最终”
无论如何,我想删除所有以前的标签并再次设置新标签,因为当该程序运行等待列表数组时会更新。
最佳答案
很难从你的问题中看出,但如果你只想显示唯一的标签,那么你的 waitingRoom
数组可能应该是不允许重复值的数据类型。阅读有关 HashSet
的 Java 文档。
关于java - 如何删除具有相同对象名称的JavaFx标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61275598/