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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> поиск в JComboBox 
V
    Опции темы
xber9
Дата 4.8.2007, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



есть список JComboBox 

так же есть срока 
как узнать есть ли элемент с именем введённым в строку  в этом писк 
и  если есть как установить его текущим
PM MAIL   Вверх
nornad
Дата 4.8.2007, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

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



Просто установи эту строку при помощи setValue (или как там у комбы). Если выбранный индекс (selectedIndex) будет -1, значит не было такого значения.
А ещё можно произвести и непосредственно поиск в списке, но для этого сначала надо получить список (кажется, его в этом случае надо хранить отдельно, но наверняка не скажу - сейчас не помню и голова после суток с лишним бодрствования плохо соображает).


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
xber9
Дата 4.8.2007, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



мне бы код показали атоя сам ниче  не могу сделать
PM MAIL   Вверх
dorogoyIV
Дата 5.8.2007, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

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



например ты сделал комбо так:
Код

Integer [] numbers=new Integer [10];
for(int i=0;i<10;i++)
{
 numbers [i]=i;
}
JComboBox jcb=new JComboBox(numbers);

jcb.setSelectedIndex(5); //  или  jcb.setSelectedItem(3);

тут есть массив, в нем ищешь нужный элемент
PM MAIL   Вверх
nornad
Дата 5.8.2007, 06:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

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



Код

String [] items = {
        "one", "two", "three", "four", "five"
};
JComboBox jcb = new JComboBox(items);
jcb.setSelectedItem("two");
if ( jcb.getSelectedIndex() == 1 ) {
  System.out.println("we have item 'two'");
} else {
  System.out.println("we haven't item 'two'");
}
jcb.setSelectedItem("six");
if ( jcb.getSelectedIndex() != -1 ) {
  System.out.println("we have item 'six'");
} else {
  System.out.println("we haven't item 'six'");
}


Добавлено через 7 минут и 35 секунд
Код

List<String> itemsList = Arrays.asList("one", "two", "three", "four", "five"); // лучше сразу было хранить в листе, но для примера сойдёт
if ( itemsList.contains( "two" ) ) {
  jcb.setSelectedItem( "two" );
}
if ( itemsList.contains( "six" ) ) {
  jcb.setSelectedItem( "six" );
}



--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
xber9
Дата 5.8.2007, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



это все хороо но есоли сомбо набивается автомотически
и мы изначально незнаем исходного массива
PM MAIL   Вверх
dorogoyIV
Дата 5.8.2007, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

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



это как "автоматически" ?
PM MAIL   Вверх
nornad
Дата 5.8.2007, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

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



xber9, держи массив элементов и при добавлении итема в комбу добавляй и в этот список.


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
xber9
Дата 5.8.2007, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



 а недльзя ли как нибуть этот массив из комбо выудить
PM MAIL   Вверх
AlexeyVorotnikov
Дата 5.8.2007, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



JComboBox.getModel()


--------------------
RTFM!
Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification
PM MAIL   Вверх
nornad
Дата 5.8.2007, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

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



Э, нет. Так ты получишь интерфейс ComboBoxModel, который реализуется в DefaultComboBoxModel.
Смотрим на его поля и методы и не видим нормальной возможности получить список элементов. Только тупым итерированием по индексу. Имхо, уж лучше хранить нормальный список снаружи.


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
RebornCrusader
Дата 6.8.2007, 05:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Совершенно очевидно. Изначальное считывание "неизвестных" данных "JComboBox" и есть корень зла. Такие проблемы просто не могут возникнуть, когда работаешь через модель. 

Я вообще не понимаю, зачем сантехники создали модель по умолчанию. Хоть бы запрятали куда. Толку от умолчальных моделей - ноль, разве что быстро посмотреть "как это выглядит".
--------------------
"Fais se que dois, - adviegne que peut. C'est commande au chevalier"
PM   Вверх
AlexeyVorotnikov
Дата 6.8.2007, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(nornad @  5.8.2007,  23:04 Найти цитируемый пост)
Э, нет. Так ты получишь интерфейс ComboBoxModel, который реализуется в DefaultComboBoxModel.
Смотрим на его поля и методы и не видим нормальной возможности получить список элементов. Только тупым итерированием по индексу. Имхо, уж лучше хранить нормальный список снаружи.

Можно создать свою модель, которая будет отдавать сразу массив.


--------------------
RTFM!
Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification
PM MAIL   Вверх
xber9
Дата 6.8.2007, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



ну хоть ббы кто нибуть дал номальный кусок кода 
который из комбо делал массив элементовё
PM MAIL   Вверх
dorogoyIV
Дата 6.8.2007, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

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



тебе уже дали минимум два примера. тогда уж дай кусок своего кода, может подскажут  smile 
PM MAIL   Вверх
AlexeyVorotnikov
Дата 6.8.2007, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(xber9 @  6.8.2007,  15:27 Найти цитируемый пост)
ну хоть ббы кто нибуть дал номальный кусок кода 

Может тебе и ключ от квартиры?..


--------------------
RTFM!
Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification
PM MAIL   Вверх
fixxer
Дата 6.8.2007, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Я, я! smile Можно я вставлю свои пять копеек. smile


xber9, у Вас налицо смешение понятий. В общем виде задача у Вас ставится так: есть набор строчек (в общем случае объектов), стоит задача выяснить наличие заданной строки (в общем случае объекта) в этом наборе. Задача решается элементарно. А вот то, что этот список каким-либо образом отображается в комбо, вопрос вообще не принципиальный и к делу не относящийся. Не следует путать UI и логику. По-моему так.

Это сообщение отредактировал(а) fixxer - 6.8.2007, 15:21


--------------------
user posted image
PM MAIL ICQ   Вверх
xber9
Дата 6.8.2007, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



к делу то как раз и относится 
потому что этот списо тк и надо  выудить из комбо
а как именно не знаю
PM MAIL   Вверх
fixxer
Дата 6.8.2007, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



ЗА-ЧЕМ? Почему список нельзя просто "иметь", а на основе его создавать комбо?


--------------------
user posted image
PM MAIL ICQ   Вверх
nornad
Дата 6.8.2007, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

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



Цитата(AlexeyVorotnikov @  6.8.2007,  15:32 Найти цитируемый пост)
Можно создать свою модель, которая будет отдавать сразу массив. 

Можно. Но, учитывая уровень опытности автора вопроса, надо было прямо это предложить сразу.  smile 
Автор вопроса пользует обычную комбу, в которую неизвестным (пока, по крайней мере) образом добавляет итемы. Модель у него там стандартная. Не уверен, что у него так сразу выйдет написать свою модель для комбы, а потому проще хранить список итемов вне комбы.
Цитата(xber9 @  6.8.2007,  18:26 Найти цитируемый пост)
а как именно не знаю

Цитата(nornad @  5.8.2007,  21:24 Найти цитируемый пост)
xber9, держи массив элементов и при добавлении итема в комбу добавляй и в этот список.

или
Цитата(AlexeyVorotnikov @  6.8.2007,  15:32 Найти цитируемый пост)
Можно создать свою модель, которая будет отдавать сразу массив.

Два варианта реализации налицо. Осталось только реализовать. Причём, оба варианта довольно просты и не требуют шибко мощного интеллекта.
Ты же просишь "напишите мне программу, потому что сам я не умею". А зачем тогда вообще заниматься программированием?
Не все люди могут программировать. Кто-то к этому предрасположен, а у кого-то мозг работает иначе. Я вот, например, свою жену даже просто сидеть за компом в качестве пользователя до сих пор приучить нормально не могу. Уже лет десять. И это при том, что она хочет и старается. И тут нечего стыдиться - все люди разные.
Просто, программирование подразумевает в первую очередь длительный самостоятельный процесс мышления определённым образом. Если нет возможности долго размышлять "по-программистски", то надо либо научиться, либо найти иное интересное занятие. В мире их, кстати, пруд пруди.


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
fixxer
Дата 6.8.2007, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(nornad @ 6.8.2007,  15:40)
Цитата(AlexeyVorotnikov @  6.8.2007,  15:32 Найти цитируемый пост)
Можно создать свою модель, которая будет отдавать сразу массив. 

Можно. Но, учитывая уровень опытности автора вопроса, надо было прямо это предложить сразу.  smile 

Нужно создавать свою модель. И дело не в "уровне опытности". Если автор не в состоянии прочитать джавадок и реализовать три метода, то встает вопрос скорее о вменяемости, а не об опыте.


--------------------
user posted image
PM MAIL ICQ   Вверх
nornad
Дата 6.8.2007, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

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



Выяснилась некоторая интересная деталь, о которой автор умолчал (мы с ним ещё и по аське чуток пообщались на эту тему).
В общем, задача усложняется тем, что xber9 унаследовал комбу от другой комбы, которая заполняет свой список итемов внутри класса. Кода этой комбы нет. Доступа к списку, похоже, тоже (видимо, наружу не выдаётся никак иначе, кроме простого взятия итема по индексу. Модель, естественно, тоже не подменишь.

В свете последней информации можно сказать лишь то, что придётся тупо итерировать итемы из оригинальной комбы. Причём, если оригинальная комба заполняется один раз и элементы больше уже не изменяются, получение списка можно встроить в унаследованную комбу и наружу выдавать полученный список. Ну, или сделать интерфейс для проверки наличия итема в списке.

Вот код получения списка итемов:
Код

List<String> items = new ArrayList<String>();
for( int i = 0; i < combo.getItemCount(); ++i ) {
  items.add( combo.getItemAt(i).toString() );
}

Проверка производится так:
Код

String item = "searched item";
if ( items.contains( item ) ) {
  // нашли
}



--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
fixxer
Дата 6.8.2007, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(nornad @ 6.8.2007,  16:19)
...унаследовал комбу от другой комбы, которая заполняет свой список итемов внутри класса. Кода этой комбы нет. Доступа к списку, похоже, тоже...

Ужос!  smile  Это зачем же такую гадость использовать?

Это сообщение отредактировал(а) fixxer - 6.8.2007, 16:24


--------------------
user posted image
PM MAIL ICQ   Вверх
nornad
Дата 6.8.2007, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

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



Цитата(fixxer @  6.8.2007,  19:23 Найти цитируемый пост)
Это зачем же такую гадость использовать?

Ну, это уже не ко мне вопрос. Видимо, проект написан и работает, но потребовалось что-то улучшить-расширить.


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
xber9
Дата 6.8.2007, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(nornad @  6.8.2007,  17:46 Найти цитируемый пост)

Ну, это уже не ко мне вопрос. Видимо, проект написан и работает, но потребовалось что-то улучшить-расширить. 

это точно 

вснем огромгое спасибо

PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.1217 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


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

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