当前位置: 首页 > 知识库问答 >
问题:

表视图清除不清除视图

长孙德惠
2023-03-14

我有一个如下定义的表视图

@FXML
private TableView<ModelFieldTableEntry> modelFieldsTable;

当用户单击时,我使用单击的项目详细信息重新加载表。在我重新加载之前,我对表项调用清除

modelFieldsTable.getItems().clear();

现在,当我单击另一个项目并尝试重新加载表格时,它看起来像下面这样。这是非常奇怪的,因为应该只有一行,但行的大小是一样的,就像从以前的点击,其余的行是空的,除了图标。当我点击图标时,没有任何反应。任何人以前都面临过这种情况。有人知道这是什么原因吗?

我的工具定义如下。它们只是2 表列

 fieldEditColumn.setCellValueFactory(cellData -> cellData.getValue().editToolProperty());
 fieldEditColumn.setCellFactory(p -> new ColumnEditCell(......));
 fieldDeleteColumn.setCellFactory(p -> new ColumnDeleteCell(.....));
 fieldDeleteColumn.setCellValueFactory(cellData -> cellData.getValue().deleteProperty());

public class ColumnEditCell extends TableCell<ModelFieldTableEntry, Boolean> {

    private Button cellButton;

    public ColumnEditCell(....) {
        .....
        initializeHandleEvent();
    }

    private void initializeHandleEvent() {
        cellButton = new Button();
        cellButton.setGraphic(IconUtils.createIcon(FontAwesomeIcon.EDIT));

        cellButton.setOnAction(t -> {
            .....
        });
    }

    @Override
    protected void updateItem(final Boolean t, final boolean empty) {
        super.updateItem(t, empty);
        if (!empty) {
            setItem(t);
            setGraphic(cellButton);
        }
    }
}

共有1个答案

养淇
2023-03-14

如果单元格变为空,您需要“撤消”更改。您没有这样做,这会导致已填充但后来变为空的单元格保持不变。在这种情况下,您需要将以下更改应用于ColumnEditCell.updateItem

@Override
protected void updateItem(final Boolean t, final boolean empty) {
    super.updateItem(t, empty);
    if (empty) {
        setGraphic(null); // remove graphic
    } else {
        // setItem(t); //already done by super.updateItem
        setGraphic(cellButton);
    }
}
 类似资料:
  • 我注意到Laravel缓存视图存储在但是没有清除视图缓存。因此,我必须手动删除上述文件夹中的文件。 另外,如何禁用视图缓存?

  • 几周前,我在Laravel5.1中遇到了同样的问题,我可以用这个解决方案解决这个问题。 然而,现在我在Lumen中面临着同样的问题,但是我不能调用来清除缓存的文件。还有别的办法吗? 谢谢!

  • 当我删除缓存的临时视图时,火花应用程序是否会清除缓存? 我在下面添加了片段,以提供更多关于这个问题的细节。 问题是,DROP TABLE temp_view_1这样的语句是否也清除了缓存?如果没有,如何清除缓存?

  • 我正在使用RecyclerView,并有一些动画,我可以在ViewHolder项目中放大一个相对布局。 注意:它不是添加/删除/插入动画。当用户在 ViewHolder 项中交互时,它将启动。因此,我在这里没有使用ItemAnimator。 动画工作正常,但它会在某个随机视图项中重新出现(最终状态)。我知道这是由于物品的重复使用,我也在清除动画,但这没有帮助。 我在节目里做这个 在onViewDe

  • 我已经创建了一个媒体播放器,它在表面视图上播放视频。视频完成后,视频的最后一帧仍保留在表面上。我想从表面移除视频帧,因为经过一些延迟后,另一个视频开始。 谁能帮助解决这个问题。 谢谢山贾因

  • 我正试图将一个Tomcat应用程序移植到JettyRunner9.2。我想将我的应用程序移到Heroku,所以我需要用嵌入式服务器或JettyRunner启动它。我认为JettyRunner将是最容易的,因为我可以保持一个战争格式,并使它容易港口离开,如果需要。 任何帮助都将不胜感激。如果我不能让它很快工作,我可以尝试嵌入式Tomcat,或者考虑不需要更改容器的托管。 如果使用Jetty的不同方法