Я хочу сделать событие, которое будет запущено после того, как я сделаю выбор в JComboBox.проблема, с которой я сейчас сталкиваюсь, заключается в том, что когда я добавил ActionListener, он срабатывал, когда пользователь нажимал на поле, но ДО того, как он фактически выбрал новый элемент, таким образом, слушатель действия был активирован все время на предыдущем выбранном значениив коробке.что я хочу сделать, это просто изменить заголовок JTextArea в соответствии с выбором.Я попытался сделать что-то вроде этого:
jBox.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
String alt = GetAlgoAreaTitleByChoice();
panel.remove(jArea);
currentBest = setArea("",alt);
currentBest.setBounds(50, 350, 1000, 290);
panel.add(jArea);
}
});
и метод внутри:
private String GetArgsAreaTitleByChoice(){
String chi = jBox.getSelectedItem().toString();
if(chi.equals(generalChoice)){
return "Hello";
}
else if(chi.equals(algoChoice)){
return "World";
}
else if(chi.equals(argsChoice)){
return "Hello";
}
return null;
}
Я пытался использовать события SELECTED сейчас, как это:
public void itemStateChanged(ItemEvent e) {
JComboBox cb = (JComboBox)e.getSource();
// Get the affected item
String item = cb.getSelectedItem().toString();
if (e.getStateChange() == ItemEvent.SELECTED) {
panel.remove(jBox);
textArea = setArea("", item);
panel.add(jBox);
}
но, кажется, удаляет область с панели, не добавляя ее обратно ... почему это происходит?