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

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

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

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

左下方的图标是返回按钮
并且卡片位于白色部分的内侧。

最佳答案

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

为了在右侧构建面板(带有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));

10-07 16:07