在将数据粘贴到JavaFX网格中后如何触发单元事件?

时间:2019-06-13 20:01:43

标签: java javafx

我根据以下给出的解决方案在控制器类中定义了粘贴方法:How to copy/paste table cells in a 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方法?

1 个答案:

答案 0 :(得分:0)

Table View无法正常工作。如果要具有完全可自定义的结构,请使用网格窗格。创建一个很难,但是在使它看起来像表格之后,您还有更多可自定义的选项。 我这样做是我最近的一个项目,需要在单元格中插入表格。使用网格窗格和文本字段要容易得多。