首页 > 解决方案 > 在 JavaFX 网格中粘贴数据后如何触发单元格事件?

问题描述

我根据此处给出的解决方案在控制器类中定义了一个粘贴方法:如何在 TableView 中复制/粘贴表格单元格。一切都很顺利,除了一个细节:一些粘贴数据的单元格有应该触发但没有触发的事件。

例如:

public class MyController {

    private TableColumn<MyBean, String> valueColumn;

    ...

    valueColumn.setOnEditCommit(e -> doSomeStuff(e));

    private void doSomeStuff(CellEditEvent<MyBean, String> event) {
        ...
    }

在此示例中,用户按 ENTER 后,将调用 doSomeStuff 方法,这是预期的行为。

我实现的粘贴方法的问题是它不会影响单元格,只会影响其内容(其 ObservableValue)。这当然意味着粘贴数据后,不会触发任何事件。

我的问题:有没有办法触发相同的事件,或者在粘贴数据后调用我的 doSomeStuff 方法的类似事件?

标签: javajavafx

解决方案


表视图不像你想象的那样工作。如果您想拥有完全可定制的结构,请使用网格窗格。很难创建一个,但是在使它看起来像一张桌子之后,您可以自定义更多选项。我在最近的一个项目中做到了这一点,我需要在单元格中插入一个表格。使用网格窗格和文本字段要容易得多。


推荐阅读