如何在SWT中关闭CTabItem时收到警告消息?

时间:2017-08-09 02:19:35

标签: java swt

如何在CTabItem事件的SWT.CLOSE中添加听众?

我尝试了tab.addListener,但它不起作用。

2 个答案:

答案 0 :(得分:2)

如上所述@avojak,您可以为每个标签项添加DisposeListener,以便在关闭时收到通知。

但是,CTabFolder还提供了CTabFolder2Listener。在标签项关闭之前,其close()方法称为。它甚至允许通过将事件doit标志设置为false来阻止关闭选项卡。

例如:

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

答案 1 :(得分:1)

我相信你所寻找的是CTabItem.addDisposeListener(DisposeListener) - 继承自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");
    }
});