Что вы подразумеваете под «соединением JComboBox с JButton. Кнопка do с выбранным элементом»?Вы хотите сказать, что хотите, чтобы пользователь мог выбрать элемент в поле со списком, затем нажать кнопку, и вы спрашиваете, как выполнить какое-либо действие с выбранным элементом в поле со списком?
Еслида, просто добавьте ActionListener к кнопке через addActionListener (), и в этом слушателе действия получите выбранный элемент.
comboBox = new JComboBox();
container.add(comboBox);
button = new JButton("Button");
container.add(button);
button.addActionListener(myButtonListener);
...
myButtonListener = new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
System.out.println("Selected item is: " + comboBox.getSelectedItem());
OceanObject myObject = (OceanObject)comboBox.getSelectedItem();
// do something else with myObject here
}
};
Если я правильно понимаю, что вы спрашиваете правильно, я думаю, что это именно то, чтоты хочешь.Согласно тому, что вы сказали, не похоже, что вам нужно возиться с другими вещами, с которыми вы столкнетесь.Это так же просто, как создание и добавление вашего поля со списком и кнопки, и добавление слушателя действия к кнопке, которая делает что-то с полем со списком в ее actionPerformed ().
Хорошо, основываясь на вашем комментарии, я думаю, что вижуТеперь, где ваша проблема лежит.Тем не менее, я поддерживаю мой комментарий, что вам не нужны эти дополнительные накладные расходы.JComboBox имеет getSelectedItem ().Я изменил свой код выше, чтобы в том месте, где идет ваша логика, я заменил свой комментарий о «поместите вашу логику здесь» и вместо этого разместил вывод, чтобы вы могли видеть, что это используется.
Как видите, мне даже не нужно отслеживать, что было выбрано, поскольку изменения были сделаны.
(правка) В ответ на ваш отредактированный вопрос: исключение выдается, потому что вы не добавляя OceanObject
s в ComboBox, вы добавляете String
s.Таким образом, эта проблема восходит к тому месту в вашем коде, куда вы добавляете вещи в свой ComboBox.Как это выглядит?