1 класс
public class AllHistory extends JFrame {
static int n = 0;
static JButton b1_1 = new JButton(new ImageIcon("100.png"));
static JButton b2_1 = new JButton(new ImageIcon("100.png"));
}
public AllHistory(String s){
super(s);
setExtendedState(JFrame.MAXIMIZED_BOTH);
setUndecorated(true);
JPanel panel = new JPanel(null);
panel.add(b1_1);
b1_1.addActionListener(new ButtonEventListener());
b1_1.setSize(200, 80);
b1_1.setLocation(350,10);
panel.add(b2_1);
b2_1.addActionListener(new ButtonEventListener());
b2_1.setSize(200, 80);
b2_1.setLocation(350,109);
class ButtonEventListener implements ActionListener{
public void actionPerformed(ActionEvent e){
Who w = new Who(null);
if(e.getSource()==b1_1){
w.setVisible(true);// появляется диалоговое окно с 3 кнопками
b_1 b1 = new b_1();// закрывается диалоговое окно
b1.setVisible(true);// открывается другой класс
setVisible(false);// закрывается menu
b1_1.setEnabled(false);// кнопка становится неактивной
}
if(e.getSource()==b2_1){
w.setVisible(true); // появляется диалоговое окно с 3 кнопками
b_2 b2 = new b_2(); // закрывается диалоговое окно
b2.setVisible(true); // открывается другой класс
setVisible(false); // закрывается menu
b2_1.setEnabled(false); // кнопка static b1_1 становится неактивной
}
}
}
}
2 класс(куда перешли после menu)
public class b_1 extends JFrame{
JButton button = new JButton();
JButton button_b1 = new JButton();
JButton button_0 = new JButton();
JRadioButton r_1 = new JRadioButton("а");
JRadioButton r_2 = new JRadioButton("b");
JRadioButton r_3 = new JRadioButton("c");
JRadioButton r_4 = new JRadioButton("d");
}
public b_1() {
super();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setExtendedState(JFrame.MAXIMIZED_BOTH);
setUndecorated(true);
JPanel panel = new JPanel(null);
panel.setLayout(null);
panel.add(button);
panel.add(button_b1);
panel.add(button_0);
panel.add(r_1);
panel.add(r_2);
panel.add(r_3);
panel.add(r_4);
//panel.add(screen);
ButtonGroup group = new ButtonGroup();
group.add(r_1);
group.add(r_2);
group.add(r_3);
group.add(r_4);
button.addActionListener(new ButtonEventListener());
button_0.addActionListener(new ButtonEventListener());
button.setSize(420, 115);
button.setLocation(948,656);
button_b1.setSize(420, 115);
button_b1.setLocation(948,656);
button_0.setSize(420, 115);
button_0.setLocation(-6,656);
r_1.setSize(250, 50);
r_1.setLocation(1024,400);
r_2.setSize(250, 50);
r_2.setLocation(1024,460);
r_3.setSize(250, 50);
r_3.setLocation(1024,520);
r_4.setSize(250, 50);
r_4.setLocation(1024,580);
setContentPane(panel);
}
class ButtonEventListener implements ActionListener{
public void actionPerformed(ActionEvent e){
menu x = new menu(null);
if(r_4.isSelected()){
if (e.getSource()==button){
switch(menu.n){
case 1:
menu.a+=100;
break;
case 2:
menu.b+=100;
break;
case 3:
menu.c+=100;
break;
}
x.setVisible(true);
dispose();
}}else if(r_2.isSelected()){
if (e.getSource()==button);
x.setVisible(true);
dispose();
}else if(r_3.isSelected()){
if (e.getSource()==button){
x.setVisible(true);
dispose();
}}else if(r_1.isSelected()){
if (e.getSource()==button){
x.setVisible(true);
dispose();
}
}
if (e.getSource()==button_0){
x.setVisible(true);
dispose();
}
}
}
}
3 класс аналогичен 2, а вот 4 класс, тот самый JDialog
public final class Who extends JDialog{
/**
*
*/
private static final long serialVersionUID = 1L;
JButton b1 = new JButton("a");
JButton b2 = new JButton("b");
JButton b3 = new JButton("c");
public Who(JFrame owner) {
super(owner, "", true);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setSize(305,125);
setResizable(false);
setLocationRelativeTo(null);
setUndecorated(false);
JPanel panel = new JPanel();
panel.add(b1);
b1.addActionListener(new ButtonEventListener());
panel.add(b2);
b2.addActionListener(new ButtonEventListener());
panel.add(b3);
b3.addActionListener(new ButtonEventListener());
add(panel);
}
class ButtonEventListener implements ActionListener{
public void actionPerformed(ActionEvent e){
if (e.getSource()==b1){
AllHistory.n = 1;
dispose();
}
if (e.getSource()==b2){
AllHistory.n = 2;
dispose();
}
if (e.getSource()==b3){
AllHistory.n = 3;
dispose();
}
}
}
}
Думаю проблемы в объявлении menu, убрал лишнее стало открываться на 2-3 окна меньше, но при многократном нажатии на кнопки в menu число открываемых JDialog окон всё растет и растет
Я самоучка и поэтому прошу строго не судить мои каракули))
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники