如何检查和防止更改JTabbedPane上的选项卡



我有选项卡选项面板,我想作为用户选项卡验证到不同的面板。我添加了一个ChangeListener,但这只会在他们更改选项卡后触发,我想在选项卡更改之前进行检查,并在任何信息无效的情况下阻止选项卡更改。

与所有Swing组件一样,JTabbedPane不自行控制其状态。它委托给负责它的模型。您可以通过JTabbedPane.setModel()设置自己的模型。如果你不想完全自己实现SingleSelectionModel接口,你可以创建一个DefaultSingleSelectionModel的子类,覆盖setSelectedIndex(int index)方法,并根据你的条件决定是否将请求传递给超类实现。

当您希望及时检查条件时(即单击选项卡时),这是一个解决方案,可能是因为提前检查太贵了。否则,如果您提前知道某个选项卡是不允许的,您可以简单地调用JTabbedPane.setEnabledAt(int, boolean)

最新更新