在 SWT 中关闭 CTabItem 时如何获得警告消息?

How to get warning message when closing CTabItem in SWT?

如何在 CTabItem 中为 SWT.CLOSE 事件添加监听器?

我已经试过了tab.addListener但是还是不行。

我相信您正在寻找的是CTabItem.addDisposeListener(DisposeListener) - inherited from Widget

例如:

final CTabFolder folder = new CTabFolder(parent, SWT.NONE);
// ...
final CTabItem item = new CTabItem(folder, SWT.NONE);
item.setText("Item 1");
item.setShowClose(true);
item.addDisposeListener(new DisposeListener() {
    @Override
    public void widgetDisposed(final DisposeEvent e) {
        System.out.println("Closed");
    }
});

@avojak 所述,您可以向每个选项卡项添加 DisposeListener,以便在关闭时收到通知。

不过,CTabFolder也提供了CTabFolder2Listener。它的 close() 方法在 关闭标签项之前被调用。它甚至允许通过将事件 doit 标志设置为 false 来防止关闭选项卡。

例如:

tabFolder.addCTabFolder2Listener(new CTabFolder2Adapter() {
  @Override
  public void close(CTabFolderEvent event) {
    event.doit = false; // disallow close
  }
}