-1

我有一个JMenuBar,我有一个JTabbedPane,当我创建多个选项卡时,JMenuBar它会在所有选项卡上执行,例如,我打开一个文件,它会在每个选项卡中打开同一个文件。

但是我只希望它在当前选项卡上打开一个文件。我添加了一个ChangeListener所以它知道它在哪个选项卡中,但是即使它有效,它似乎也没有帮助。

tabbedPane.addChangeListener(new ChangeListener() {
    public void stateChanged(ChangeEvent e) {
        System.out.println("Tab=" + tabbedPane.getSelectedIndex());
    }
});
getContentPane().add(tabbedPane, "Center");
pack();

我希望能够打开多个选项卡,而菜单栏仅对应于当前选项卡。

4

1 回答 1

2

让提供每个选项卡内容的对象导出它自己的特定实例Action。当用户更改选项卡时,使用设置全局菜单setAction()中每个可用的所需操作。这里JMenuItem有一个相关的例子。

于 2012-12-30T23:48:38.203 回答