我使用MVC模型创建了一个包含三个JComboBoxes的表单。
我的控制器类是从ItemListener继承的
在我的表格里面
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;
}
}
在控制器内部我有东西
public class ComboBoxItemListener implements ItemListener
{
@Override
public void itemStateChanged(ItemEvent event) {
JComboBox comboBox = (JComboBox)event.getSource();
System.out.println(event.getSource().toString());
}
}
因此,我如何理解在控制器内部运行期间更改了哪一个?
最佳答案
在您的createCombobox例程中,添加类似
jcmb.setName(dataType);
然后,在您的控制器内部,您可以按名称标识它们中的每个:
comboBox.getName();
只需使名称常量在需要名称的类之间共享即可。