2015-06-17 2 views
1


У меня есть Editable JComboBoxполя поиска в одном из моих Java приложений Swing. Я хотел сэкономить место заголовка окна поиска и поместить в значок поиска внутри editable jcombobox, чтобы отобразить его как поле поиска. Это должно выглядеть очень похоже на поле поиска в Facebook.
Итак, мой вопрос в том, что есть ли способ достичь такой цели в Java? Как новичок моя идея недействительна. Любое предложение/помощь будет положительно работать для меня.поиск Иконки внутри редактируемых JComboBox/JTextField

Благодаря

ответ

4

Вы можете использовать пользовательские границы на редакторе в поле со списком, который является текстовым полем:

ComboBoxEditor editor = comboBox.getEditor(); 
JTextField textField = (JTextField)editor.getEditorComponent(); 
Border outer = textField.getBorder(); 
Border search = new MatteBorder(0, 16, 0, 0, new ImageIcon("search.gif")); 
textField.setBorder(new CompoundBorder(outer, search)); 

Воли плитка изображения в границе Границы с рисунком, так что вам нужно сделать убедитесь, что изображение - это размер текстового поля, или вы создаете пользовательскую границу, которая только рисует изображение один раз.

Для получения дополнительной информации ознакомьтесь с разделом из учебника Swing по телефону How to Use Borders.

+0

Отлично работает, но 'comboBox' в первой строке является неизвестным компонентом. Но не беспокойтесь, я не добавил эти строки 'JComboBox jcbx = новый JComboBox <>();.' ' JTextField editorComponent = (JTextField) jcbx.getEditor() getEditorComponent();' ' jcbx.setEditable (истина);' – mustangDC

+0

@mustangDC, 'works fine' - не забудьте« принять »этот ответ (и все остальные), чтобы люди знали, что проблема решена. Пункт опубликованного кода состоял в том, чтобы показать вам, как отображать значок, а не создавать поле со списком. – camickr

+0

yA .. aCCEPTED AND VOTED – mustangDC

Смежные вопросы