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

Как заполнить комбобох при нажатии мышью на него?

30.10.2014, 20:14. Показов 773. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день уважаемые форумчане.
Пытаюсь освоить GUI на Java для чего решил сделать программку, которая будет общаться с базой.

Не могу сообразить как должна выглядеть обработка событий
По моей задумке при клике на JComboBox basebox программа подключается БД и получает список таблц

Как подправить код чтобы basebox заполнялся названиями таблиц?

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
public class opisanieokon extends JFrame {
    public opisanieokon(){ 
        super("программа"); 
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(800, 600); 
        
        
        setLayout (new BorderLayout()); // задаем бордер лайаут в jframe myWindow
        /*********************Инициализируем элементы****************************/
        JPanel panel1 = new JPanel(); // для ввода данных
        JPanel panel2 = new JPanel(); // для вывода данных
        // элементы 1ой панели
        JComboBox basebox = new JComboBox(); // комбо бокс выбра таблицы
        JPasswordField basepass = new JPasswordField (); // Пароль от базы
        JComboBox filebox = new JComboBox(); // Комбобокс выбора таблицы из папки
        /************************************************************************/
        
        
        /*********************Задаем лайауты (расположения )****************************/
        panel1.setLayout(new GridLayout(2,3));// задаем табличный лайаут для первой панели 2 строки и три столбца
        panel1.setLayout(new GridLayout(0,3));// задаем табличный лайаут для второй панели с возможностью расширяться вниз
        /************************************************************************/
        
        
        /*********************Добавляем элементы на jframe myWindow****************************/
        add(panel1, BorderLayout.SOUTH);
        add(panel2, BorderLayout.NORTH);
        // элементы на панели
        panel1.add(basebox);
        panel1.add(basepass);
        panel1.add(filebox);
        panel1.add(new JLabel("Выбор таблицы")); 
        panel1.add(new JLabel("Пароль базы"));
        panel1.add(new JLabel("Выбор файла"));
        
        panel2.add(new JLabel("Категория поставщика"));
        panel2.add(new JLabel("Наша категория"));
        
        /*********************формируем действия****************************/
        MouseListener base_click = new MouseClickOnBase();
        /************************************************************************/
        
        
        /*********************Связываем действия****************************/
        basebox.addMouseListener(base_click);
        
 
        /************************************************************************/
          
    }
    
    
        /*********************действия****************************/
        public class MouseClickOnBase implements MouseListener {
            
            public void mouseClicked(MouseEvent event) {}
            public void mouseEntered(MouseEvent event) {}
            public void mouseExited(MouseEvent event) {}
            public void mousePressed(MouseEvent event) {
                String url = "jdbc:mysql://localhost:3306/";
                String dbName = "dbdb";
                String driverName = "com.mysql.jdbc.Driver";
                String userName = "rootroot";
                String password = "12345i";
                Connection con = null;
                try {
                    Class.forName(driverName); // подключаем драйвер для работы с БД
                    try {
                        con = DriverManager.getConnection(url + dbName, userName, password); // подключаемся к БД
                        Statement st = con.createStatement(); // создаем объект statment для хранения SQL команд
                        ResultSet rs = st.executeQuery("SHOW TABLES");
                        while(rs.next()){ //цикл перебора строк результата запроса
                            System.out.println(rs.getString(1));
                            basebox.addItem(rs.getString(1));
                        }
                        
                    } catch (SQLException ex) {
                        System.out.println("что-то  с базой )))");
                    }
                } catch (ClassNotFoundException ex) {
                    System.out.println("что-то  с базой))))");
                }
            }
            public void mouseReleased(MouseEvent event) {}
            
        }
 
 
        /************************************************************************/
 
    
}
Добавлено через 10 минут
Netbeans подчеркивает basebox красным и предлагает три варианта при нажатии Alt+Enter:

Создать поле в классе MouseClickOnBase
Создать класс в пакете
Создать класс в классе opisanieokon

Добавлено через 1 час 1 минуту
Наконец то доперло, что надо было сразу после первой строки вписать

Java
1
private JComboBox basebox;
и 13 строку поменять на
Java
1
basebox = new JComboBox();
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.10.2014, 20:14
Ответы с готовыми решениями:

Как убрать фокус (:focus) с изображения, при нажатии на него?
У меня есть изображение, при нажатии на которое с помощью псевдокласса :focus оно увеличивается в размерах, но убрать фокус с изображения...

Как узнать объект при нажатии на него и манипулировать с ним?
Всем привет. Создал множество PictureBox в рядок. Созданы они динамически. Есть такой код: pum->Click += gcnew EventHandler(this,...

Как закрасить круг при нажатии на него и уменьшить его в 3 раза
Program Kur1; Uses GraphABC, crt; Procedure Kursor(Var Xk, Yk: integer); Procedure PicKur(Xk, Yk: integer); ...

1
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
06.11.2014, 16:52
Цитата Сообщение от iaks Посмотреть сообщение
Как подправить код чтобы basebox заполнялся названиями таблиц?
Тынц.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.11.2014, 16:52
Помогаю со студенческими работами здесь

Вращение квадрата при нажатии на его угол и его перемещение при нажатии на него (Canvas)
Добрый день, я столкнулся с такой проблемой, мне нужно сделать реализацию вращения квадрата при нажатии на его угол и его перемещение при...

Раздвоение Объекта при нажатии на shape мышью
Нужно написать код, чтобы после нажатия на shape мышью он раздваивался и выполнял те же функции что и первый.

Кликать мышью 3 раза при нажатии ЛКМ
Ребята , всем привет ! Искала в нэте , не нашел подходящий вариант того что мне нужно . Мой пример задачи заключается в том , что при...

Как изменить текст в Li или в любом другом теге при нажатии на него?
Как изменить текст в Li или в любом другом теге при нажатии на него? Причем необходимо изменить на текст именно на тот который ввeду...

Как изменить текст в Li или в любом другом теге при нажатии на него?
Как изменить текст в Li или в любом другом теге при нажатии на него? Нужен какой-либо простейший скрипт?


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Контроль корректности заполнения дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru