I’ve created a form with three JComboBoxes in it using MVC model.
my controller class is inherited from ItemListener
inside my form I have
createCombobox(mypane , "year");
createCombobox(mypane , "month");
createCombobox(mypane , "day");
private void createComboBox( Container container,String datatype)
{
JComboBox jcmb = new JComboBox();
jcmb.addItemListener(listener);
container.add(jcmb);
switch(datatype.toLowerCase())
{
case "year":
v_ctl.addYearsToCombobox(jcmb);
break;
case "month":
v_ctl.addMonthsToCombobox(jcmb);
break;
case "day":
v_ctl.addDaysToComboBox(jcmb);
break;
}
}
inside controller I have something
public class ComboBoxItemListener implements ItemListener
{
@Override
public void itemStateChanged(ItemEvent event) {
JComboBox comboBox = (JComboBox)event.getSource();
System.out.println(event.getSource().toString());
}
}
so how can I understand which one is changed during runtime inside the controller?
In your createCombobox routine, add something like
Then inside your controller, you could identify each of them by name:
Simply make the names constants that you share between the classes that need the name.