gpt4 book ai didi

java - 表格更改时如何更新 SWT TableViewer?

转载 作者:行者123 更新时间:2023-11-29 06:04:24 25 4
gpt4 key购买 nike

我有一个 SWT TableViewer这当然会显示 Table 的内容.当我更改表中的内容时,查看器不会自动刷新以显示更改。具体来说,我更改了表的其中一列的排序方向,但查看器不会更新,除非我调用 viewer.refresh()。在附加到表的听众中刷新查看器非常容易,但这需要表的听众知道查看器。该表与其查看器紧密耦合。

在表格与查看器不紧密耦合的情况下让查看器刷新的最佳方式是什么?

最佳答案

我不确定您在 Table 上连接的监听器到底有哪些您不能交替连接在 TableViewer 上以将其作为您的源。例如,您可以在 TableViewer 上连接一个 ISelectionChangedListener,而不是在您的 Table 上连接一个 SelectionListener .在这种情况下,现在您将获得 TableViewer 而不是表格作为事件源。

当然,TableViewer 可能无法正确代理某些事件。在这种情况下,当您创建它时,我会在 Table 的数据中添加对 TableViewer 的引用。例如:

Table table = new Table(parent, SWT.NONE);
TableViewer tableViewer = new TableViewer(table);

table.setData("tableViewer", tableViewer);

table.addListener(SWT.DISPOSE, new Listener() {
public void handleEvent(Event e)
{
Table table = (Table)e.widget;
TableViewer tableViewer = (TableViewer)table.getData("tableViewer");
}
});

关于java - 表格更改时如何更新 SWT TableViewer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9038218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com