Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > GUI-компонент для выбора 10-15 пунктов из 50-70 =?


Автор: hardfun 19.1.2008, 18:34
hi all.

Есть большое кол-во отчетов, в которых для задания критериев выборки юзер должен открыть достаточно большой список (от 50 до 100 пунктов), быстро там найти нужные пункты (инкрементным поиском) и отметить их (число отмеченных обычно больше 10) и  нажать "Ок" для продолжения. Таких запросов ему задается по 3-4  при каждом составлении отчета.

Программа должна:
1) запоминать для текущего юзера пункты каждого списка, заданные в прошлый раз, чтобы при следующем составлении этого же отчета выдать юзеру на подтверждение и, при ответе "Ок", _не_ заставлять юзера повторно их отмечать;
2) отображать (в виде JLabel внутри JPanel ?) после выбора 10-15 пунктов их число и первые символы тех названий, которые выбраны (насколько хватит места в панельке). Это отображение обязательно должно быть видно на экране в виде метки из 1-2 строк, т.к. юзера часто хотят вспомнить, по каким именно критериям проводилась выборка.

Мой вопрос: если кому-то приходилось делать примерно такое же, то как вы организовывали свой GUI ? Особенно с учетом требования, что ПЕРЕД заданием критериев эти 100-строчные списки не должны быть видны: на них должны быть только "намёки" в виде "..."  или ">>", а вот ПОСЛЕ задания критериев они (части выбранных названий) должны отображаться в "лаконичном стиле" -- какими компонентами вы бы это делали ?

ОФФТОП. Вообще, где-нить в сети есть шареварные beans'ы для "домашнего просмотра", чтобы не тратить кучу времени на изобретение своего "единственного-неповторимого" междуморда ?

Автор: Kangaroo 19.1.2008, 20:51
Можно сделать Лист с мультиселектом.

Цитата(hardfun @  19.1.2008,  17:34 Найти цитируемый пост)
Особенно с учетом требования, что ПЕРЕД заданием критериев эти 100-строчные списки не должны быть видны: на них должны быть только "намёки" в виде "..."  или ">>", а вот ПОСЛЕ задания критериев они (части выбранных названий) должны отображаться в "лаконичном стиле" -- какими компонентами вы бы это делали

Вот это непонятно, если можно поподробней.


Цитата(hardfun @  19.1.2008,  17:34 Найти цитируемый пост)
ОФФТОП. Вообще, где-нить в сети есть шареварные beans'ы для "домашнего просмотра", чтобы не тратить кучу времени на изобретение своего "единственного-неповторимого" междуморда ? 

smile Ужос. Тут еще непонятней.

Автор: hardfun 19.1.2008, 22:41
Цитата
Вот это непонятно, если можно поподробней.
 Представьте себе список из нескольких десятков пунктов (в моей задаче меньше 30 не бывает). Например, пусть это будут наименования ваших поставщиков (не всех, разумеется, а с определенным статусом). Вам нужно провести дополнительную выборку по тем из них, у которых есть еще какой-то объединяющий признак (например, они дают скидку на товар свыше 5%, или возят товар из Тайваня etc). Названия этих поставщиков (5-7) вы давно знаете наизусть, т.к. этот отчет - ваша рутинная обязанность. Эти названия вам надо быстро найти (вводя буквы названий, не "глазами" же искать!). Допустим, нашли. Теперь их надо отметить. Заметьте, "ИХ" (т.е. несколько), а не "его". Отметили. Дальше дали программе команду продолжать запрос критериев отбора. Собственно, это все. 
Что в итоге имеем ?
1) список "на входе" достаточно большой. Даже 15-20 названий - это не 3-4. Хочется держать этот список "за пазухой" до тех пор, пока до него не доберутся с запросом (иначе он займет пол-экрана). Получается, JComboBox ? Но как в нем сделать удобный мульти-селект ? (как сделать инкрементный поиск в это комбо-списке - я уже нашел на этом форуме);
2) как показать юзеру список тех, которых он отметил ? ведь исходный список скроллируется, и было бы очень удобно, чтобы юзер видел в отдельной панельке список тех, которых он выбрал. 
3) самое главное, что когда юзер завершит отметку и запустил отчет, то список выбранных им контрагентов должен быть как-то отображен на экране, пусть даже "фрагментами-обрывами" названий (надо будет видеть его полностью - ткнёт в какую-нибудь gif-кнопку рядом и получит весь). Почему это важно ? Потому что с отчетом достаточно часто работают подолгу и юзерам трудно держать в голове критерии выборки. Они должны их где-то видеть, пусть даже в "усеченном" виде.

Не знаю, понятнее ли я объяснил - уж как смог.

Итак, первый вопрос: как это можно реализовать ?
Вторая часть вопроса: я подозреваю, что эта задача (мульти-селект в длинном списке с предварительным просмотром того, что отобрано) имеет настолько "типовой" характер, что для нее уже давно созданы javabeans'ы. Пусть даже платные, но где их посмотреть можно ? Не хочется тратить время на изобретение колеса, вот и всё. И в чём тут "ужос" ?!  smile 

Автор: Kangaroo 19.1.2008, 23:48
Цитата(hardfun @  19.1.2008,  21:41 Найти цитируемый пост)
Не знаю, понятнее ли я объяснил - уж как смог.

Вот, теперь понятней  smile 

Значит как мне это видится.
Есть текстфилд, в нем сделать аутокомплит. Пользователь набирает пару букв - появляются варианты.
Дальше есть две возможности:
1) Пользователь нажимает ентер и этот поставщик заносится в панель  выбранных поставщиков (которая показывается рядом)
2) Или рядом будет кнопка - пользователь ее нажимает и этот поставщик заносится в панель.......

Это все, как мне видится, будет самым удобным.
Бесплатных компонент не знаю. Вот http://www.youtube.com/watch?v=21u8C81MLQI там показаны пару компонент, но вроде они платные.

Цитата(hardfun @  19.1.2008,  21:41 Найти цитируемый пост)
самое главное, что когда юзер завершит отметку и запустил отчет, то список выбранных им контрагентов должен быть как-то отображен на экране

А в чем тут сложность? Пользователь выбрал список, когда он запускает отчет - вы отображаете этот список на экране.


Цитата(hardfun @  19.1.2008,  21:41 Найти цитируемый пост)
И в чём тут "ужос" ?! 

шареварные - ну это я еще понял  smile 
javabeans - разве готовые компоненты называют java beans'ами? Это вроде совсем разные понятия.
для "домашнего просмотра" - это как?
междуморда -  и такого сленга я не знаю  smile 

Автор: hardfun 20.1.2008, 00:08
Цитата
javabeans - разве готовые компоненты называют java beans'ами? Это вроде совсем разные понятия.
для "домашнего просмотра" - это как?
междуморда -  и такого сленга я не знаю  smile 

Уж простите великодушно начинающего, но, как я понял из лит-ры, javabeans - это компоненты для повторного использования в визуальных средах разработки. Или не так ?
"Для домашнего просмотра" - ну, типа не для коммерции, не для использования в продаваемых программах и т.п. Только так, для образовательных целей...   smile 
"Междуморд" === интерфейс.  Это не сленг. Это почти буквальный перевод   smile  (я его знаю уже лет 10, по кр. мере)

Автор: batigoal 20.1.2008, 18:42
Цитата(hardfun @  20.1.2008,  01:08 Найти цитируемый пост)
avabeans - это компоненты для повторного использования в визуальных средах разработки. Или не так ?

Это компоненты, но не обязательно визуальные.

Автор: Kangaroo 20.1.2008, 21:20
Цитата(Kangaroo @  19.1.2008,  22:48 Найти цитируемый пост)
javabeans - разве готовые компоненты называют java beans'ами? Это вроде совсем разные понятия.

В этом пункте забираю свои слова обратно  smile  Вот к чему приводит прочтение нашего  http://forum.vingrad.ru/faq/topic-157925.html.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)