我希望防止用户在当前选项卡无效时更改选项卡。所以当他点击选项卡时,我想检查当前选项卡是否“有效”,如果不是,则留在当前选项卡上。我尝试使用VetoableChangeListener但失败了,代码从未进入vetoableChange方法:
jTabbedPane.addVetoableChangeListener(new VetoableChangeListener() {
@Override
public void vetoableChange(PropertyChangeEvent evt) throws PropertyVetoException {
if (!isCurrentTabValid()) {
throw new PropertyVetoException("test", evt);
}
}
});
我应该如何正确地做这件事?
谢谢!
vetoableChange
在选项卡关闭后和前一个选项卡被选择时被调用。我搜索了一下关于vetoableClose
的信息,但没有结果。 - Alex BurduselJTabbedPane.remove(tabIndex)
方法。我设法解决了这个问题。在关闭当前选项卡之前,我会选择前一个选项卡,这样就会调用valueChanged
方法。 - Alex Burdusel