在Java Swing GUI中使用CardLayout的后退按钮

时间:2016-06-18 15:34:09

标签: java swing cardlayout

我正在尝试在我的GUI中实现一个后退按钮,该按钮使用动作侦听器并运行代码转到上一张卡

cards.previous(contentPane);

按下按钮时。

我的问题是,点击后退按钮后,无论我在GUI上按哪个按钮,它总是会转到我来自的卡片上。所以数字是JPanel s

2 --back - > 1 - * - >的 2

后退和*(=任何)是我按下的按钮。为什么会这样?

编辑:App extends JFrame

public App() {
    cards = new CardLayout();
    contentPane = new JPanel();
    contentPane.setLayout(cards);
    contentPane.add(new StartPanel(this));
}

public void next(JPanel p) {
    contentPane.add(p);
    cards.next(contentPane);
}

public void prev() {
    cards.previous(contentPane);
}

StartPanel

public StartPanel(App app) {
    JButton btn2 = new JButton("2");
    JButton btn3 = new JButton("3");
    btn2.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            app.next(new JPanel());
        }
    });
    btn3.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            app.next(new JPanel());
        }
    });
    add(btn2);
    add(btn3);
}

我的问题是,当我通过按后退按钮从面板2转到面板1(StartPanel),然后按btn3,它会转到面板2而不是面板3.

0 个答案:

没有答案