如何删除具有相同对象名称的JavaFx标签

时间:2020-04-17 15:48:14

标签: java oop user-interface javafx methods

我创建了一个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显示错误“从内部类内部访问变量'标签',需要是最终的或有效的最终的” 无论如何,我想删除所有先前的标签并再次设置新标签,因为此程序运行等待列表数组时会更新。

1 个答案:

答案 0 :(得分:0)

很难从您的问题中看出来,但是如果您只想显示唯一的标签,那么您的waitingRoom数组应该是不允许重复值的数据类型。阅读HashSet上的Java文档。