2012-04-27 3 views
0

Я работаю над проектом, где мне нужно реализовать компонент, который предоставляет функцию «автозаполнения множественного выбора».java (автозаполнение) множественный выбор/значения в текстовом поле

Конечно, я прочитал много уроков и просмотрел множество примеров, но я не нашел ничего, чтобы решить мою проблему. В последние дни я искал и поиск, и, наконец, лучший компонентом я видел, был таким:

Primefaces autocomplete multiple selection

Stackoverflow поддерживает этот вид функции, а также, когда вы задать новый вопрос и должны указать тег, хотеть. Но это css, и Java не может обрабатывать «сложные» стили CSS. :/

Итак, интересно, можно ли это сделать с чистой Java.

Если нет, было бы достаточно иметь текстовое поле (или другое поле?), Которое включает в себя различные компоненты для разделения различных входов, как показано на рисунке. Это то, что мне нужно.

Поле, которое включает в себя компоненты, которые могут быть удалены, нажав на «Х»

Но я не уверен, что это может быть решена с помощью Java. Мне нужен способ разделить разные входы в текстовое поле (или другой компонент?), Например, добавить границу вокруг текстов. Звучит просто, но я думаю, это может быть очень сложно. , ,

Есть ли у кого-нибудь предложения? или идеи, как я могу решить мою проблему? Я был бы очень признателен, потому что у меня кончились идеи.

URL в PrimeFaces: http://www.primefaces.org/showcase-labs/ui/autoCompleteMultiple.jsf

Иоаннис К.

+0

Каким образом решение Prime Faces не подходит? –

+0

Я не пользуюсь PrimeFaces. Просто работаю с Swing .. и задаюсь вопросом, могу ли я создать подобную область с чистой java (без html/css/js ..), которую я могу использовать в своем настольном приложении. –

ответ

0

Для всех, кто заинтересован в решении:

http://tips4java.wordpress.com/2009/09/27/component-border/

Вместо добавления одной кнопки вы можете добавить панель, содержащую несколько кнопок. Поиграйте немного с настройками и вуаля!

0

свинг демо Alice In Wonderland представляет компоненты в JTextPane/JEditorPane. Вероятно, достаточно добавить кликабельное изображение перед пробелом и немного покрасить.

Альтернативой было бы добавить в поле редактирования, например панель, список компонентов, где в конце находится JTextField, который по пространству/фокусу теряется, превращается в ваш синий компонент и создает новый JTextField.

+0

Я надеялся избежать такого решения. Для начала мне нужен JPanel. Первым компонентом в этой панели будет «TextField с функцией автозаполнения». При выборе элемента списка (сохранение) в этой панели создается новый компонент (например, JLabel). Существует ли «более легкое» решение? Построение всего вручную было бы моим худшим случаем. –

+0

У вас очень специфический сценарий. Я надеюсь, что кто-то другой столкнулся с некоторым решением, но это, как правило, DIY. –

+0

Я надеялся, что кто-то сделал что-то подобное, потому что это действительно приятная функция. Или кто-нибудь может дать мне некоторые идеи, как его реализовать. У меня есть JPanel. В этом JPanel есть текстовое поле с функцией автозаполнения, где вы можете выбирать элементы в jlist. Когда вы выбираете элемент, он появляется в кнопке с JPanel. Я могу удалить элемент, просто нажав кнопку. Это решение окольным путем. –