我正在尝试在我的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.