Я реализовал ComboBox с помощью NetBeans со списком значений, я хочу иметь возможность выполнять действие всякий раз, когда изменяется выбранный индекс. Например, когда пользователь меняет текущий элемент с элемента 1 на элемент 2.
Выполнение действия над JComboBox — SwingUI
comment
Все, что вам нужно сделать, это прочитать JComboBox API, и вы найдете ссылку на учебник Swing о том, как использовать поля со списком. API — это первое, с чего нужно начать.
- person camickr   schedule 04.05.2011
comment
Думаю, мой поиск foo отключен, спасибо за указатель!
- person Jamie Keeling   schedule 04.05.2011
Ответы (1)
Вот пример использования из Руководства по Java. а>:
public class ComboBoxDemo ... implements ActionListener {
. . .
petList.addActionListener(this) {
. . .
public void actionPerformed(ActionEvent e) {
JComboBox cb = (JComboBox)e.getSource();
String petName = (String)cb.getSelectedItem();
updateLabel(petName);
}
. . .
}
Изменить:
An ActionListener
is
Интерфейс прослушивателя для получения событий действий. Класс, который заинтересован в обработке события действия, реализует этот интерфейс, а объект, созданный с помощью этого класса, регистрируется в компоненте с помощью метода addActionListener этого компонента. Когда происходит событие действия, вызывается метод actionPerformed этого объекта.
Редактировать 2:
Вот еще один пример использования, отвечающий требованиям kleopatra, то есть тот, который лучше всего подходит:
JComboBox yourComboBox = new JComboBox();
yourComboBox.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// do stuff
}
});
person
mre
schedule
04.05.2011
Не могли бы вы пояснить, как работает ActionListener? Запускается ли он при любом взаимодействии с ComboBox или вы можете использовать параметр, переданный в метод actionPerformed? Чтобы уточнить, я тестировал и заметил, что это работает, когда я выбираю новый элемент, можно ли его расширить, если я хочу, чтобы он срабатывал в другом событии? Извините, я привык к обработке событий C#
- person Jamie Keeling; 04.05.2011
Прочитайте учебник. Ответ был опубликован 3 минуты назад. Вы не могли прочитать учебник, загрузить пример и протестировать его, прежде чем запрашивать дополнительную информацию.
- person camickr; 04.05.2011
@Jamie: Конечно, просто зарегистрируйте другой EventListener
- person mre; 04.05.2011
-1 за реализацию ActionListener в самой демонстрации (предоставляет общедоступный API, который не предназначен для использования). Вместо этого используйте внутренний ActionListener
- person kleopatra; 04.05.2011
@kleopatra: серьезно? это было взято НЕПОСРЕДСТВЕННО из Учебников по Java. если у вас есть проблемы с этим ответом, почему бы не проконсультироваться с людьми, которые разработали пример? шиш...
- person mre; 04.05.2011
они невосприимчивы к предложениям ;-) В любом случае, то, что они делают что-то неправильно, не оправдывает любые скопированные фрагменты, которые не фильтруются с помощью передового опыта.
- person kleopatra; 04.05.2011
@kleopatra: вздох ... Думаю, ты прав :). при этом я предоставил лучший пример использования. ценю критику.
- person mre; 04.05.2011