Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
6 / 6 / 3
Регистрация: 22.09.2013
Сообщений: 166

Работа со Swing JavaSE. Нет реакции на нажатие кнопки

20.09.2015, 13:11. Показов 1008. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Имеется следующая проблема: нет реакции программы при нажатии Button-а. ActionListener прописан правильно. Даже не представляю какая там может быть ошибка.

Чтобы было все понятно объясняю что делает этот код: Идет считывание таблицы базы данных H2 посредством jdbc и записывается в таблицы с помощью Swing

Вывод таблиц с данными работает почти корректно не считая того что кнопка "Показать таблицу" работает со второго раза =\
Также программа должна уметь искать нужные данные в базе. (Прикреплю скриншот интерфейса программы)

Кнопка "Начать поиск" не реагирует на нажатия вообще. В отладчике при клике показывается, что клик зачтен но активность не начинается. При этом все вроде бы нормально описано.

Буду благодарен за помощь!

Вот описание активности всех кнопок:


"Кнопка - Показать таблицу"
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
       jButton1.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent ae) {
                if(ae.getSource() == jButton1){
                    if((String)jComboBox1.getModel().getSelectedItem() == "STUDENT") {
                        if(flag1 == 0){
                            flag1 = 1;
                            
                            JFrame frame = new JFrame("TABLE STUDENT");
                            frame.setSize(new Dimension(600, 400));
                            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                            frame.setLocationRelativeTo(null);
                            frame.setLayout(new GridBagLayout());
                            
                            TableModelStudent dataBaseTableModel = new TableModelStudent();
                            JTable dataBase = new JTable(dataBaseTableModel);
                            JScrollPane dataBaseScrollPane = new JScrollPane(dataBase);
                            dataBaseScrollPane.setPreferredSize(new Dimension(400, 400));
                            
                            try {
                                dataBaseTableModel.addDateBaseStudent();
                            } catch (SQLException ex) {
                                Logger.getLogger(JFrame.class.getName()).log(Level.SEVERE, null, ex);
                            }
                            
                            frame.add(dataBaseScrollPane, new GridBagConstraints(0, 0, 1, 1, 1, 1,GridBagConstraints.NORTH,
                                          GridBagConstraints.BOTH, new Insets(1, 1, 1, 1), 0, 0));
                            frame.setVisible(true);
                            frame.pack();
                        }
                    }else if((String)jComboBox1.getModel().getSelectedItem() == "LESSON"){
                        if(flag2 == 0){
                            flag2 = 1;
                            
                            JFrame frame = new JFrame("TABLE LESSON");
                            frame.setSize(new Dimension(600, 400));
                            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                            frame.setLocationRelativeTo(null);
                            frame.setLayout(new GridBagLayout());
                            
                            TableModelLesson dataBaseTableModel = new TableModelLesson();
                            JTable dataBase = new JTable(dataBaseTableModel);
                            JScrollPane dataBaseScrollPane = new JScrollPane(dataBase);
                            dataBaseScrollPane.setPreferredSize(new Dimension(400, 400));
                            
                            try {
                                dataBaseTableModel.addDateBaseLesson();
                            } catch (SQLException ex) {
                                Logger.getLogger(JFrame.class.getName()).log(Level.SEVERE, null, ex);
                            }
                            
                            frame.add(dataBaseScrollPane, new GridBagConstraints(0, 0, 1, 1, 1, 1,GridBagConstraints.NORTH, 
                                         GridBagConstraints.BOTH, new Insets(1, 1, 1, 1), 0, 0));
                            frame.setVisible(true);
                            frame.pack();
                        }
                    }                            
                      
                }
            }
        });
    }
"Кнопка - Начать поиск"

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        jButton2.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent ae) {
                if(ae.getSource() == jButton2){
                    if (jTextField2.getText() == "STUDENT" || jTextField2.getText() == "student" ||
                        jTextField2.getText() == "Student"){
                        Connection connect = null;
                        Statement stm = null;
 
                        try 
                        {
                            Class.forName("org.h2.Driver");
                            connect = DriverManager.getConnection("jdbc:h2:file:\\C:\\Users\\Egor\\test", "sa", "");
                            stm = connect.createStatement();
                        }
                        catch (ClassNotFoundException | SQLException ex) {
                            Logger.getLogger(JFrame.class.getName()).log(Level.SEVERE, null, ex); 
                        }
 
                        ResultSet rs = null;
                        try {
                            rs = stm.executeQuery("select * from STUDENT");
                        } catch (SQLException ex) {
                            Logger.getLogger(JFrame.class.getName()).log(Level.SEVERE, null, ex);
                        }
 
                        try {
                            while(rs.next()){
                                if(jTextField1.getText() == rs.getString("ID") || jTextField1.getText() == rs.getString("FIO") || 
                                        jTextField1.getText() == rs.getString("LESSON_ID") || 
                                        jTextField1.getText() == rs.getString("MARK")){
                                    
                                    String[] row = {rs.getString("ID"), rs.getString("FIO"), rs.getString("LESSON_ID"), 
                                                         rs.getString("MARK")};
                                    if(flag3 == 0){
                                        flag3 = 1;
 
                                        JFrame frame = new JFrame("TABLE STUDENT");
                                        frame.setSize(new Dimension(600, 400));
                                        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                                        frame.setLocationRelativeTo(null);
                                        frame.setLayout(new GridBagLayout());
 
                                        TableModelStudent dataBaseTableModel = new TableModelStudent();
                                        JTable dataBase = new JTable(dataBaseTableModel);
                                        JScrollPane dataBaseScrollPane = new JScrollPane(dataBase);
                                        dataBaseScrollPane.setPreferredSize(new Dimension(400, 400));
 
                                        dataBaseTableModel.addDate(row);
 
                                        frame.add(dataBaseScrollPane, new GridBagConstraints(0, 0, 1, 1, 1, 
                                                       1,GridBagConstraints.NORTH, GridBagConstraints.BOTH,
                                                        new Insets(1, 1, 1, 1), 0, 0));
                                        frame.setVisible(true);
                                        frame.pack();
                                    }
                                }
                            }
                        } catch (SQLException ex) {
                            Logger.getLogger(JFrame.class.getName()).log(Level.SEVERE, null, ex);
                        }
                    }else if(jTextField2.getText() == "LESSON" || jTextField2.getText() == "lesson" || jTextField2.getText() == "Lesson"){
                        Connection connect = null;
                        Statement stm = null;
 
                        try 
                        {
                            Class.forName("org.h2.Driver");
                            connect = DriverManager.getConnection("jdbc:h2:file:\\C:\\Users\\Egor\\test", "sa", "");
                            stm = connect.createStatement();
                        }
                        catch (ClassNotFoundException | SQLException ex) {
                            Logger.getLogger(JFrame.class.getName()).log(Level.SEVERE, null, ex); 
                        }
 
                        ResultSet rs = null;
                        try {
                            rs = stm.executeQuery("select * from STUDENT");
                        } catch (SQLException ex) {
                            Logger.getLogger(JFrame.class.getName()).log(Level.SEVERE, null, ex);
                        }
                        
                        try {
                            while(rs.next()){
                                if(jTextField1.getText() == rs.getString("ID") || jTextField1.getText() == rs.getString("NAME")){
                                    
                                    String[] row = {rs.getString("ID"), rs.getString("NAME")};
                                    if(flag3 == 0){
                                        flag3 = 1;
                                        
                                        JFrame frame = new JFrame("TABLE LESSON");
                                        frame.setSize(new Dimension(600, 400));
                                        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                                        frame.setLocationRelativeTo(null);
                                        frame.setLayout(new GridBagLayout());
                                        
                                        TableModelLesson dataBaseTableModel = new TableModelLesson();
                                        JTable dataBase = new JTable(dataBaseTableModel);
                                        JScrollPane dataBaseScrollPane = new JScrollPane(dataBase);
                                        dataBaseScrollPane.setPreferredSize(new Dimension(400, 400));
                                        
                                        dataBaseTableModel.addDate(row);
                                        
                                        frame.add(dataBaseScrollPane, new GridBagConstraints(0, 0, 1, 1, 1, 
                                                       1,GridBagConstraints.NORTH, GridBagConstraints.BOTH,
                                                       new Insets(1, 1, 1, 1), 0, 0));
                                        frame.setVisible(true);
                                        frame.pack();
                                    }
                                }
                            }
                        } catch (SQLException ex) {
                            Logger.getLogger(JFrame.class.getName()).log(Level.SEVERE, null, ex);
                        }
                    }
                }
            }
        });
    }
Если потребуется доп.информация по коду я скину.
Миниатюры
Работа со Swing JavaSE. Нет реакции на нажатие кнопки   Работа со Swing JavaSE. Нет реакции на нажатие кнопки  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.09.2015, 13:11
Ответы с готовыми решениями:

Нет реакции на нажатие кнопки
Вообщем, объясните мне дураку, почему моя простейшая логика не хочет работать, а точнее условие принимает а нажатие кнопки не реагирует. Да...

Компьютер не включается вообще, на нажатие кнопки нет реакции.
Позвонил знакомый и жалуется типа комп не работает. Приезжаю смотрю, включаю в розетку, жму кнопочку......и никакой реакции!!! Я в...

Организация реакции объекта на нажатие кнопки мыши
Здравствуйте, товарищи!!! Хочу написать простенькую игрушку в стиле карточного пасьянса, при этом хочу задействовать ООП. Думаю, нужно...

2
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 29
20.09.2015, 14:31
ну и спагетти...почему у тебя слушатель навешивается на кнопку внутри метода, который тоже по видимому отрабатывает нажатие? как в коде ты вызываешь методы jButton1ActionPerformed и jButton2ActionPerformed?
1
6 / 6 / 3
Регистрация: 22.09.2013
Сообщений: 166
20.09.2015, 15:18  [ТС]
Так это ведь два разных объекта? Они разве как-то могут влиять друг на друга? Сам я только только со Swing - ом работать начал. Объясните почему так не нужно и как сделали бы вы?

Добавлено через 32 минуты
Я понял про что вы. Получилось вот так.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        if((String)jComboBox1.getModel().getSelectedItem() == "STUDENT") {
            if(flag1 == 0){
                flag1 = 1;
 
                JFrame frame = new JFrame("TABLE STUDENT");
                frame.setSize(new Dimension(600, 400));
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setLocationRelativeTo(null);
                frame.setLayout(new GridBagLayout());
 
                TableModelStudent dataBaseTableModel = new TableModelStudent();
                JTable dataBase = new JTable(dataBaseTableModel);
                JScrollPane dataBaseScrollPane = new JScrollPane(dataBase);
                dataBaseScrollPane.setPreferredSize(new Dimension(400, 400));
 
                try {
                    dataBaseTableModel.addDateBaseStudent();
                } catch (SQLException ex) {
                    Logger.getLogger(JFrame.class.getName()).log(Level.SEVERE, null, ex);
                }
 
                frame.add(dataBaseScrollPane, new GridBagConstraints(0, 0, 1, 1, 1, 1,GridBagConstraints.NORTH, GridBagConstraints.BOTH, new Insets(1, 1, 1, 1), 0, 0));
                frame.setVisible(true);
                frame.pack();
            }
        }else if((String)jComboBox1.getModel().getSelectedItem() == "LESSON"){
            if(flag2 == 0){
                flag2 = 1;
 
                JFrame frame = new JFrame("TABLE LESSON");
                frame.setSize(new Dimension(600, 400));
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setLocationRelativeTo(null);
                frame.setLayout(new GridBagLayout());
 
                TableModelLesson dataBaseTableModel = new TableModelLesson();
                JTable dataBase = new JTable(dataBaseTableModel);
                JScrollPane dataBaseScrollPane = new JScrollPane(dataBase);
                dataBaseScrollPane.setPreferredSize(new Dimension(400, 400));
 
                try {
                    dataBaseTableModel.addDateBaseLesson();
                } catch (SQLException ex) {
                    Logger.getLogger(JFrame.class.getName()).log(Level.SEVERE, null, ex);
                }
 
                frame.add(dataBaseScrollPane, new GridBagConstraints(0, 0, 1, 1, 1, 1,GridBagConstraints.NORTH, GridBagConstraints.BOTH, new Insets(1, 1, 1, 1), 0, 0));
                frame.setVisible(true);
                frame.pack();
            }
        }                            
    }
Но обработчик вот этой кнопки все равно не реагирует.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        if (jTextField2.getText() == "STUDENT" || jTextField2.getText() == "student" || jTextField2.getText() == "Student"){
            Connection connect = null;
            Statement stm = null;
 
            try 
            {
                Class.forName("org.h2.Driver");
                connect = DriverManager.getConnection("jdbc:h2:file:\\C:\\Users\\Egor\\test", "sa", "");
                stm = connect.createStatement();
            }
            catch (ClassNotFoundException | SQLException ex) {
                Logger.getLogger(JFrame.class.getName()).log(Level.SEVERE, null, ex); 
            }
 
            ResultSet rs = null;
            try {
                rs = stm.executeQuery("select * from STUDENT");
            } catch (SQLException ex) {
                Logger.getLogger(JFrame.class.getName()).log(Level.SEVERE, null, ex);
            }
 
            try {
                while(rs.next()){
                    if(jTextField1.getText() == rs.getString("ID") || jTextField1.getText() == rs.getString("FIO") || 
                            jTextField1.getText() == rs.getString("LESSON_ID") || jTextField1.getText() == rs.getString("MARK")){
 
                        String[] row = {rs.getString("ID"), rs.getString("FIO"), rs.getString("LESSON_ID"), rs.getString("MARK")};
                        if(flag3 == 0){
                            flag3 = 1;
 
                            JFrame frame = new JFrame("TABLE STUDENT");
                            frame.setSize(new Dimension(600, 400));
                            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                            frame.setLocationRelativeTo(null);
                            frame.setLayout(new GridBagLayout());
 
                            TableModelStudent dataBaseTableModel = new TableModelStudent();
                            JTable dataBase = new JTable(dataBaseTableModel);
                            JScrollPane dataBaseScrollPane = new JScrollPane(dataBase);
                            dataBaseScrollPane.setPreferredSize(new Dimension(400, 400));
 
                            dataBaseTableModel.addDate(row);
 
                            frame.add(dataBaseScrollPane, new GridBagConstraints(0, 0, 1, 1, 1, 1,GridBagConstraints.NORTH, GridBagConstraints.BOTH, new Insets(1, 1, 1, 1), 0, 0));
                            frame.setVisible(true);
                            frame.pack();
                        }
                    }
                }
            } catch (SQLException ex) {
                Logger.getLogger(JFrame.class.getName()).log(Level.SEVERE, null, ex);
            }
        }else if(jTextField2.getText() == "LESSON" || jTextField2.getText() == "lesson" || jTextField2.getText() == "Lesson"){
            Connection connect = null;
            Statement stm = null;
 
            try 
            {
                Class.forName("org.h2.Driver");
                connect = DriverManager.getConnection("jdbc:h2:file:\\C:\\Users\\Egor\\test", "sa", "");
                stm = connect.createStatement();
            }
            catch (ClassNotFoundException | SQLException ex) {
                Logger.getLogger(JFrame.class.getName()).log(Level.SEVERE, null, ex); 
            }
 
            ResultSet rs = null;
            try {
                rs = stm.executeQuery("select * from STUDENT");
            } catch (SQLException ex) {
                Logger.getLogger(JFrame.class.getName()).log(Level.SEVERE, null, ex);
            }
 
            try {
                while(rs.next()){
                    if(jTextField1.getText() == rs.getString("ID") || jTextField1.getText() == rs.getString("NAME")){
 
                        String[] row = {rs.getString("ID"), rs.getString("NAME")};
                        if(flag3 == 0){
                            flag3 = 1;
 
                            JFrame frame = new JFrame("TABLE LESSON");
                            frame.setSize(new Dimension(600, 400));
                            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                            frame.setLocationRelativeTo(null);
                            frame.setLayout(new GridBagLayout());
 
                            TableModelLesson dataBaseTableModel = new TableModelLesson();
                            JTable dataBase = new JTable(dataBaseTableModel);
                            JScrollPane dataBaseScrollPane = new JScrollPane(dataBase);
                            dataBaseScrollPane.setPreferredSize(new Dimension(400, 400));
 
                            dataBaseTableModel.addDate(row);
 
                            frame.add(dataBaseScrollPane, new GridBagConstraints(0, 0, 1, 1, 1, 1,GridBagConstraints.NORTH, GridBagConstraints.BOTH, new Insets(1, 1, 1, 1), 0, 0));
                            frame.setVisible(true);
                            frame.pack();
                        }
                    }
                }
            } catch (SQLException ex) {
                Logger.getLogger(JFrame.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }
Добавлено через 7 минут
Решил проблему использованием equals. Закрыто
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.09.2015, 15:18
Помогаю со студенческими работами здесь

Почему нет реакции на нажатие кнопок?
1класс package npk; import javax.swing.JFrame; public class NPK { public static void main(String args) { ...

Изменение стандартной реакции компонента на нажатие кнопки мыши.
Добрый вечер всем. Подскажите пожалуйста каким образом изменить реакцию компонента (VCL C++ Builder) на нажатие правой кнопки мыши....

Как изменить файл на сервере по реакции на нажатие кнопки на странице?
Всем здравствуйте. Делаю небольшой плагин для WordPress и не могу понять как по нажатию на кнопку изменить файл на сервере. Я так понял...

сма LG F 1068 SD s/n 003RAET28828, Затрудненный старт, нет реакции на нажатие паузы
Добрый день. Помогите пожалуйста разобраться. Реакция на все кнопки, кроме старта адекватная. При нажатии "старт", в основном,...

Не ставится Windows XP на системник DEPO - нет реакции на нажатие клавиш ENTER / F3 / R
Знаете в начале установки винды, примерно на 4 - 5 минуте она предлагает нажать ENTER, либо F3, либо R. Так вот на этом участке нет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru