Изменение содержимого JComboBox - PullRequest
13 голосов
/ 29 декабря 2008

Я хотел бы изменить содержимое списка JComboBox (например, добавить другой список вместо более старого). Есть ли способ, которым я мог бы сделать это? Заранее спасибо!

Ответы [ 5 ]

11 голосов
/ 29 декабря 2008

Если вы хотите иметь возможность добавлять и удалять элементы из существующего поля со списком во время выполнения, базовой моделью данных для поля со списком должен быть MutableComboBoxModel

Google для этого класса для получения информации об интерфейсе и примеров того, как его использовать.

Обратите внимание, что если вы хотите, чтобы пользователь вводил новые значения, вам также нужно сделать поле редактируемым.

Вы можете найти ссылки на примеры здесь .

5 голосов
/ 05 декабря 2011

Я нашел эту ветку и нашел быстрое (и, возможно, грязное) решение:

oldComboBox.setModel(new JComboBox<>(new_items).getModel());
2 голосов
/ 29 декабря 2008

Вы также можете полностью заменить модель на setModel ().

Но после написания все большего количества пользовательских интерфейсов я считаю более полезным написать собственный ComboBoxModel, чтобы обернуть структуру данных, которую представляет ComboBox. Это более проверяемое и более чистое устройство, ИМХО.

2 голосов
/ 29 декабря 2008

Конечно можно. Существует несколько методов управления JComboBox с использованием модели списка по умолчанию. Посмотрите на методы удаления * и добавьте * методы:

http://java.sun.com/javase/6/docs/api/javax/swing/JComboBox.html

0 голосов
/ 29 декабря 2008

Библиотека Glazed Lists очень полезна, если вы хотите подключить любой изменяемый список к элементу управления GUI. Это большая библиотека, которая может не подходить для вашего проекта, но посмотрите на их скринкасты и судите сами. Он поддерживает множество связанных вещей, таких как фильтрация и автозаполнение, и может сэкономить вам много ручной работы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...