Мне нужно создать поле со списком с множественным выбором, как этого достичь?Как создать Combobox с мультиселекцией?
ответ
Есть несколько основных проблем с созданием контента пользовательских выпадающей всплывающим (как список с): множественным выбором
1. Пользовательских интерфейс по умолчанию предполагает использование JList как содержание так, чтобы изменить это поведение, вы должны изменить весь ComboBoxUI
2. Вы не можете просто изменить список списков combobox по умолчанию в мультиселементный из-за того, что в конце только одно значение получает «выбранный», а в списке есть приемник мыши по умолчанию, который не сможет выбрать больше чем один элемент
Так что я бы посоветовал вам e простой JList вместо combobox или посмотрите на использование некоторых библиотек расширенных компонентов, таких как JideSoft - у них есть этот компонент и многое другое, которое вы не сможете быстро создать с помощью функций Swing.
хороший момент, спасибо большое. – manhnt
Его просто, что я уже пытался изменить всплывающее окно combobox в древовидное, и я потерпел неудачу - эта попытка заняла почти день. Поэтому я рекомендую использовать JList OR в качестве опции - JButton со всплывающим меню, содержащим любые компоненты/редакторы, которые вам нравятся. –
Я знаю, что вопрос довольно старый, но для тех, кто все еще ищет решение этой проблемы, попробуйте следующий код:
public class ComboSelections {
public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException, UnsupportedLookAndFeelException {
UIManager.setLookAndFeel((LookAndFeel) Class.forName("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel").newInstance());
final JPopupMenu menu = new JPopupMenu();
JMenuItem one = new JCheckBoxMenuItem("One");
JMenuItem two = new JCheckBoxMenuItem("Two");
JMenuItem three = new JCheckBoxMenuItem("Three");
JMenuItem four = new JCheckBoxMenuItem("Four");
menu.add(one);
menu.add(two);
menu.add(three);
menu.add(four);
final JButton button = new JButton("Click me");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (!menu.isVisible()) {
Point p = button.getLocationOnScreen();
menu.setInvoker(button);
menu.setLocation((int) p.getX(),
(int) p.getY() + button.getHeight());
menu.setVisible(true);
} else {
menu.setVisible(false);
}
}
});
one.addActionListener(new OpenAction(menu, button));
two.addActionListener(new OpenAction(menu, button));
three.addActionListener(new OpenAction(menu, button));
four.addActionListener(new OpenAction(menu, button));
JFrame frame = new JFrame();
JPanel panel = new JPanel();
panel.add(button);
frame.getContentPane().add(panel);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
private static class OpenAction implements ActionListener {
private JPopupMenu menu;
private JButton button;
private OpenAction(JPopupMenu menu, JButton button) {
this.menu = menu;
this.button = button;
}
@Override
public void actionPerformed(ActionEvent e) {
menu.show(button, 0, button.getHeight());
}
}
}
хорошее решение проблемы) – Denis
- 1. AngularJS Пользовательские директивы с мультиселекцией
- 2. Как создать Qt COMBOBOX
- 3. Редукционная форма с мультиселекцией от виджета реагирования
- 4. Проблема с множественным бутстрапом-мультиселекцией на странице
- 5. Создать combobox с неселектируемым разделителем
- 6. Как создать новый combobox с кодом C#?
- 7. Как создать редактируемый combobox с базой данных?
- 8. Как создать combobox с изображениями в Gtk?
- 9. Как создать MFC ComboBox с поиском
- 10. Как создать WPF Combobox с suboptions
- 11. Как создать Combobox с универсальной способностью?
- 12. Как создать combobox с элементами флажка?
- 13. ATK4 Как OneToMany retion можно использовать с мультиселекцией?
- 14. Создать UserControl ComboBox с кнопкой
- 15. Как создать dojo combobox dropdown
- 16. Jqgrid с навигацией на клавиатуре с мультиселекцией: true
- 17. Caliburn.Micro Создать Combobox динамически
- 18. Создать JavaFX ComboBox с настраиваемым всплывающим окном
- 19. Создать WinForms ComboBox с неизменяемыми элементами
- 20. Select2js не работает с мультиселекцией и массивом данных
- 21. Плагин Rails/Gem для текстового поля с мультиселекцией?
- 22. Создать мастер/детали с Combobox и DataGridView
- 23. WinApi -> Как создать ComboBox (без ресурсов)
- 24. Как создать пользовательский combobox внутри ASPxGridView
- 25. Kendo.Web Grid Popup Создать с ComboBox
- 26. Как создать ComboBox на сайте C#
- 27. Как создать не редактируемый GXT ComboBox?
- 28. Как создать этот тип combobox в Flex?
- 29. Как создать ItemTemplate для ComboBox программно?
- 30. Как создать элемент управления combobox на iphone?
Вот ваш ответ: http://stackoverflow.com/ a/2860376/32090 –
Я бы предложил использовать [JList] (http://docs.oracle.com/javase/6/docs/api/javax/swing/JList.html) для этого. – flash
@ Андрю Томпсон: хороший совет :) – manhnt