Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проверка значения JComboBox, проверка значения JComboBox 
:(
    Опции темы
zvonko
Дата 26.10.2010, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 26.10.2010

Репутация: нет
Всего: нет



Помогите пожалуйста!
Как реализовать проверку значений при изменении значения JComboBox, по некоторому критерию.
Если критерий не выполняется - вернуть предыдущее значение?
PM MAIL   Вверх
mstalker26
Дата 26.10.2010, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 4.7.2009

Репутация: 3
Всего: 11



сам-то что уже попробовал?
--------------------
Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
PM   Вверх
zvonko
Дата 28.10.2010, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 26.10.2010

Репутация: нет
Всего: нет



Вот как хочу реализовать данную проблему.
Хотелось бы не использовать внешнюю переменную для хранения предыдущего значения

Код

private ItemListener cbState = new ItemListener ()

    {

        public void itemStateChanged(ItemEvent evt)

        {

            JComboBox sourceComboBox=(JComboBox)evt.getSource();

            String s_state=sourceComboBox.getSelectedItem().toString();

            String s_state_previus=evt.getItem().toString();

            System.out.println("State changing from "+s_state_previus + " to " +s_state+ "StateChange:"+evt.getStateChange());



            if ( evt.getStateChange()==ItemEvent.DESELECTED)

            {



                String[] ConnectOptionNames = { "Да","Нет" };

                if(JOptionPane.showOptionDialog(new JPanel(),"Изменить состояние?","Внимание!" ,

                    JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE,

                        null, ConnectOptionNames, "") == 0)

                {

                    //Производим некие манипуляции с данными - изменяется значение ComboBox

                }

                else

                {

                    //необходимо запретить изменение ComboBox - установть значение s_state_previus

                }

            }

        }

    };





    JComboBox comboBox.addItemListener(cbState);


PM MAIL   Вверх
mgarin
Дата 1.11.2010, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 19.8.2009
Где: Санкт-Петербург

Репутация: 2
Всего: 3



Цитата(zvonko @  28.10.2010,  12:31 Найти цитируемый пост)
Вот как хочу реализовать данную проблему.
Хотелось бы не использовать внешнюю переменную для хранения предыдущего значения


Вам в любом случае придется хранить старое.
Как вариант:
Код
        comboBox.addItemListener ( new ItemListener()
        {
            private Object oldSelection = null;

            public void itemStateChanged ( ItemEvent e )
            {
                if ( e.getStateChange () == ItemEvent.DESELECTED )
                {
                    oldSelection = e.getItem ();
                }
                else if ( e.getStateChange () == ItemEvent.SELECTED )
                {
                    System.out.println ( "Old: " + oldSelection + "; New: " + e.getItem () );
                }
            }
        } );

PM MAIL WWW ICQ   Вверх
zvonko
  Дата 2.11.2010, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 26.10.2010

Репутация: нет
Всего: нет



Но как вернуть предыдущее значение?

И чтобы корректно работало если повесить этот ItemListener на несколько JComboBox?
У меня есть таблица, один из столбцов которой JComboBox, мне нужно делать проверку изменений
ComboBox и если не проходит некий критерий - то  вернуть предыдущее значение...
PM MAIL   Вверх
jk1
Дата 3.11.2010, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 21
Всего: 75



Цитата

У меня есть таблица, один из столбцов которой JComboBox, мне нужно делать проверку изменений
ComboBox и если не проходит некий критерий - то  вернуть предыдущее значение... 

А почему бы просто не ограничить выбор пользователя, предложив в ComboBox только варианты, удовлетворяющие критерию? на то он и ComboBox)


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
zvonko
Дата 3.11.2010, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 26.10.2010

Репутация: нет
Всего: нет



Цитата(jk1 @ 3.11.2010,  10:04)
Цитата

У меня есть таблица, один из столбцов которой JComboBox, мне нужно делать проверку изменений
ComboBox и если не проходит некий критерий - то  вернуть предыдущее значение... 

А почему бы просто не ограничить выбор пользователя, предложив в ComboBox только варианты, удовлетворяющие критерию? на то он и ComboBox)

мне нужно в ComboBox сделать подтверждение выбора..

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.1000 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.