如何使用卡片布局中的按钮导航到上一张卡片?

时间:2018-08-31 11:03:14

标签: java swing layout-manager cardlayout

我在Netbeans中创建了一个Java应用程序,并使用CardLayout制作了三张卡片,当我单击三个按钮时,它们就会出现。

一切都很好,但是我想制作一个“后退”图标,当单击该图标时,它会带来前一张卡片,因此,如果我在第三张卡片中,则单击“后退”图标会带来第二张卡片,从第二张牌到第一张牌,依此类推。

问题是,例如,我希望程序知道我们在第二张卡中,因此单击“后退”图标将显示第一张卡。

后退图标也位于同一JFrame中的另一个面板上。希望有人帮忙!

左下方的图标是“后退”按钮 和卡片位于白色部分的内部。

image

1 个答案:

答案 0 :(得分:2)

我想您项目中的某个地方已经有以下代码段:

用于在右侧(带有CardLayout的面板)上构建面板:

JPanel panel1 = ...;
JPanel panel2 = ...;
JPanel panel3 = ...;
JPanel rightPanel = new JPanel();
CardLayout cardLayout = new CardLayout();
rightPanel.setLayout(cardLayout);
rightPanel.add(panel1);
rightPanel.add(panel2);
rightPanel.add(panel3);

并用于构建“后退”按钮(带有<-图标的按钮):

JButton backButton = ...;

然后您需要添加的内容如下:

backButton.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        cardLayout.previous(rightPanel);    
    }
});

或等效地,如果您更喜欢Java 8的简洁lambda语法:

backButton.addActionListener(e -> cardLayout.previous(rightPanel));