JMenu在单个选项卡上工作

时间:2012-12-30 20:03:46

标签: java swing jtabbedpane jmenubar

我有一个JMenuBar并且我有JTabbedPane,当我创建多个标签时,JMenuBar会在所有标签上执行此操作,例如我打开一个文件,它会在每个标签中打开相同的文件。

但是我只想让它在当前标签上打开一个文件。我添加了一个ChangeListener所以它知道它在哪个标签中然而它似乎没有帮助,即使它有效。

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

我希望能够打开多个标签,而菜单栏只对应当前标签。

1 个答案:

答案 0 :(得分:2)

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