Я хочу добавить одну и ту же кнопку в разные дочернии панели. Если я добавляю эту единственную кнопку всего в одну дочернюю панель, то все хорошо работает, а если в 2 или более панели, то эта кнопка перестает отображаться. Я могу сделать три разные кнопки с одинаковым функционалом и все заработает, но зачем такие костыли.
package com.company;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Main {
JFrame frame = new JFrame();
JPanel panelCont = new JPanel();
JPanel mainPanel = new JPanel();
JPanel pane1 = new JPanel();
JPanel pane2 = new JPanel();
JPanel pane3 = new JPanel();
JButton button1 = new JButton("to first panel");
JButton button2 = new JButton("to second panel");
JButton button3 = new JButton("to third panel");
JButton buttonBack = new JButton("Back");
CardLayout cl = new CardLayout();
public Main() {
panelCont.setLayout(cl);
mainPanel.add(button1);
mainPanel.add(button2);
mainPanel.add(button3);
mainPanel.setBackground(Color.YELLOW);
pane1.setBackground(Color.BLUE);
pane2.setBackground(Color.GREEN);
pane3.setBackground(Color.PINK);
panelCont.add(mainPanel, "main");
panelCont.add(pane1, "1");
panelCont.add(pane2, "2");
panelCont.add(pane3, "3");
pane1.add(buttonBack);
pane2.add(buttonBack);
pane3.add(buttonBack);
cl.show(panelCont, "main");
button1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
cl.show(panelCont, "1");
}
});
button2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
cl.show(panelCont, "2");
}
});
button3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
cl.show(panelCont, "3");
}
});
buttonBack.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
cl.show(panelCont, "main");
}
});
frame.add(panelCont);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(200, 200, 200, 200);
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new Main();
}
});
}
}
Выше я говорили про кнопку buttonBack, именно она не хочет отображаться во всех трех панелях.
Помогите, пожалуйста, разобраться с данной проблемой.
Продвижение своими сайтами как стратегия роста и независимости