You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaFX TableView数据消失Bug求助:特定操作下数据异常消失

JavaFX TableView 异常Bug:滚轮滚动后点击表格数据消失

触发条件

  • TableView显示水平滚动条
  • TableView显示垂直滚动条,但该滚动条处于不可滚动状态
  • 鼠标滚轮向下滚动后点击表格,表格内部分数据会消失

已监听TableView的itemProperty(),未发现元素数据有任何变化。

环境信息

  • JDK 17
  • JavaFX 21

问题演示动图

复现代码

package org.example;

import javafx.application.Application;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.value.ObservableValue;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Callback;

import java.util.HashMap;
import java.util.Map;

public class TestTableView extends Application {

    @Override
    public void start(Stage primaryStage) {

        StackPane root = new StackPane();

        TableView<Map> tableView = new TableView<>();
        int size = 10;
        for (int i = 0; i < size; i++) {
            TableColumn<Map,String> tableColumn = new TableColumn<>(i+"\"");
            int finalI = i;
            tableColumn.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<Map, String>, ObservableValue<String>>() {
                @Override
                public ObservableValue<String> call(TableColumn.CellDataFeatures<Map, String> mapStringCellDataFeatures) {
                    return new SimpleStringProperty(finalI+"\"");
                }
            });
            tableView.getColumns().add(tableColumn);

        }
        for (int i = 0; i < 10; i++) {
            Map<String,String> map = new HashMap<>();
            tableView.getItems().add(map);
            for (int j = 0; j < size; j++) {
                map.put(j+"\"", j+"\"");
            }

        }
        root.getChildren().add(tableView);
        // 根据屏幕分辨率调整高度以复现Bug
        Scene scene = new Scene(root, 250, 290);
        primaryStage.setScene(scene);
        primaryStage.setTitle("Popup at Screen Corner");
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

内容的提问来源于stack exchange,提问作者Lson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 07:50:01