使JMenuItem显示一个JPanel并隐藏另一个

时间:2014-12-29 14:58:34

标签: java swing actionlistener jmenuitem

我希望能够通过选择某个JMenuItem在我的框架中切换两个可能的JPanel。到目前为止我尝试了什么:

我的JMenuBar类中的动作侦听器:

@Override
public void actionPerformed(ActionEvent e) {
        if (e.getSource().equals(fullList))
            gui.switchToFullList();
        else if (e.getSource().equals(history))
            gui.switchToHistory();
}

在GUI类中:

void switchToFullList() {
    remove(history);
    add(fullList);
}

void switchToHistory() {
    remove(fullList);
    add(history);
}

其中historyfullList是JPanel。

这似乎不会以任何方式修改我的框架。

1 个答案:

答案 0 :(得分:0)

如果你想显示一个Panel并隐藏另一个Panel,它们都应该是你的Frame的childreen,那么你可以通过以下方式访问这些Panel:frame.JpanelName。

删除历史记录并添加fullList的示例:

frame.remove(frame.history);
frame.getContentPane().add(frame.fullList);
frame.validate();
frame.repaint();