我在Netbeans中创建了一个Java应用程序,并使用CardLayout
制作了三张卡片,当我单击三个按钮时,它们就会出现。
一切都很好,但是我想制作一个“后退”图标,当单击该图标时,它会带来前一张卡片,因此,如果我在第三张卡片中,则单击“后退”图标会带来第二张卡片,从第二张牌到第一张牌,依此类推。
问题是,例如,我希望程序知道我们在第二张卡中,因此单击“后退”图标将显示第一张卡。
后退图标也位于同一JFrame
中的另一个面板上。希望有人帮忙!
左下方的图标是“后退”按钮 和卡片位于白色部分的内部。
答案 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));