Форум программистов, компьютерный форум, киберфорум
Java: GUI, Графика
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 24.12.2020
Сообщений: 2
1

Глюки в JComboBox

24.12.2020, 21:28. Просмотров 2009. Ответов 1
Метки нет (Все метки)

Всем привет, есть проблема...

В программе 3 уровня выбора, реализовано через JComboBox
Глюки в JComboBox


Думаю понятно, выбор в первом меню меняет два нижних меню, выбор среднего, только нижний.
Ниже фрагменты кода вывода этих 3-х меню

Java
1
2
3
4
5
6
       JComboBox<String> rtk_combo_box = new JComboBox<>(rtk_short_name);
        jPanel_rtk.add(rtk_combo_box);
        rtk_combo_box.setFont(font);
        rtk_combo_box.setBounds(105,5,360,30);
        for (i=(MAX_RTK_BASE_SIZE-1); i > size_rtk_base-1; i--) { // Удаление пустых записей в выпадающем меню rtk
            rtk_combo_box.removeItemAt(i); }
Java
1
2
3
4
5
6
        JComboBox<String> client_combo_box = new JComboBox<>(client_short_name_menu[0]);
        jPanel_rtk.add(client_combo_box);
        client_combo_box.setFont(font);
        client_combo_box.setBounds(105,90,360,30);
        for (i=(MAX_CLIENT_BASE_SIZE-1); i > client_max_size_menu[0]-1; i--) { // Удаление пустых записей в выпадающем меню клиентов
            client_combo_box.removeItemAt(i); }
Java
1
2
3
4
5
6
        JComboBox<String> decoder_combo_box = new JComboBox<>(decoder_short_name_menu[0][0]);
        jPanel_rtk.add(decoder_combo_box);
        decoder_combo_box.setFont(font);
        decoder_combo_box.setBounds(105,175,360,30);
        for (i=(MAX_DECODER_BASE_SIZE-1); i > decoder_max_size_menu[0][0]-1; i--) { // Удаление пустых записей в выпадающем меню декодеров
            decoder_combo_box.removeItemAt(i); }
Здесь фрагмент кода обработки выбора в первом меню

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
        rtk_combo_box.addActionListener(e -> {
            int i1;
 
            for (i1=(client_max_size_menu[selected_rtk]-1); i1 > 0; i1--) { // Удаление старых записей в выпадающем меню клиентов кроме нулевой
                client_combo_box.removeItemAt(i1); }
            for (i1=(decoder_max_size_menu[selected_rtk][selected_client]-1); i1 > 0; i1--) { // Удаление старых записей в выпадающем меню декодеров кроме нулевой
                decoder_combo_box.removeItemAt(i1); }
 
            selected_rtk = rtk_combo_box.getSelectedIndex();
            selected_client = 0;
            selected_decoder = 0;
 
            for(i1=1; i1<client_max_size_menu[selected_rtk]; i1++) client_combo_box.addItem(client_short_name_menu[selected_rtk][i1]);
            client_combo_box.setSelectedIndex(0);
            client_combo_box.revalidate();
 
            for(i1=1; i1<decoder_max_size_menu[selected_rtk][selected_client]; i1++) {
                decoder_combo_box.addItem(decoder_short_name_menu[selected_rtk][0][i1]);
            }
 
            decoder_combo_box.setSelectedIndex(0);
            jPanel_rtk.revalidate();
        });
В приведенном выше фрагменте кода видно, что обработка второго и третьего комбобокса одинаковая, но второй отображается корректно, а третий нижний добавляет в начало лишнюю строку меню, как будто при удалении одна строка не удаляется.
НО... проверка промежуточным выводом через getSelectedItem() и getItemCount() показывает, что в меню содержится именно то, что должно быть, а фактически отображается со вставленной в начало меню лишней строкой меню, дублирующей первую.

Ничего не понимаю, две идентичных обработки, одна работает корректно, а вторая нет
ЧТО МОЖЕТ БЫТЬ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.12.2020, 21:28
Ответы с готовыми решениями:

Глюки, опять глюки, и Яша иже с ними.
То ли я не тем пользуюсь, тол Яша со мной повоевать вздумал.... В общем несколько сайтов у Мну -...

JComboBox
такой вопрос. можно ли результат запроса на выборку из таблици из БД записать у JComboBox ? чтобы...

JComboBox
Выполняю задание по книжке : 1. Создайте Swing-приложение для размещения заказов на покупку...

JComboBox
помогите с jcombobox разобраться.На примитивном уровне. Вот выбираем число Два из одного списка,...

1
0 / 0 / 0
Регистрация: 24.12.2020
Сообщений: 2
24.12.2020, 21:36  [ТС] 2
Очепятка вышла, в предпоследней строчке сообщения выше не getSelectedItem(), а getItemAt()
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.12.2020, 21:36

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

JTable и JComboBox
Подскажите пожайлуста! У меня есть два combobox. Один отвечает за столбцы, второй за строки....

Объект в jComboBox
в комбобкс как я понял можно запихать любой объект. Мне сейчас как раз это и надо, чтобы...

Значение jComboBox
День добрый! Джаву изучаю не по книжкам, методом проб, т.к. перехожу с .Net (C#) и есть между ними...

JComboBox с Key и Value
Мне часто в приложении нужен комбобокс, который можно заполнить из БД(поля: идентификатор, текст),...

Cобытия в JComboBox
Всем привет! Столкнулся с проблемой и не знаю как ее решить Вот часть кода где описывается...

Ошибка с JComboBox
Из xml-файла вытаскиваю нужные данные и пихаю в ArrayList (раньше был просто массив хрень таже). В...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.