Как перейти к предыдущей карточке с помощью кнопки в макете карточки? - PullRequest
0 голосов
/ 31 августа 2018

Я создал приложение Java в Netbeans и использовал CardLayout для создания трех карт, которые появляются, когда я нажимаю три кнопки.

Все хорошо, но я хочу сделать значок «назад», который при нажатии приносит предыдущую карту, так что, если я нахожусь на третьей карте, нажатие на значок «назад» возвращает вторую карту, и от второй карты к первой и так далее.

Проблема в том, что я хочу, чтобы программа знала, что мы находимся на второй карточке, например, поэтому нажатие на иконку «назад» возвращает первую карточку.

Также значок «Назад» находится на другой панели в том же JFrame. Я надеюсь, что кто-то поможет!

Значок в левом нижнем углу - кнопка возврата а карточки внутри - белая часть.

image

1 Ответ

0 голосов
/ 31 августа 2018

Я предполагаю, что где-то в вашем проекте у вас уже есть следующие фрагменты кода:

Для построения панели справа (с 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:

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