初学者,有些地方不太懂。
第一个构造方法 JComboBox(ComboBoxModel aModel)参数是这个模型
自己写一个类继承AbstractListModel类和ComboBoxModel接口,在这个类中实现要求的方法,如getSelectedItem()等
第二个构造方法提供一个数组参数
写了两个程序分别使用两个构造方法创建下拉列表,结果都可以使用getSelectedItem()(在管理器里打印出选择项)
那么我花那么大的力气继承类实现各种方法,和我直接给个数组参数使用方法的效果都一样。
请问第一个构造方法有什么意义呢。

解决方案 »

  1.   

    ComboBoxModel aModel)参数是这个模型 是为了便于以后动态更新
    而数组你也知道数组的长度是你在定义的时候写死了,以后不利于更新,
    最好是用模型来写
      

  2.   

    比如你有三个 JComboBox,
    第一个选择哪一年,
    第二个选择几月,
    第三个选择几号第三个JComboBox的可选项取决于前两个,
    假如你用了数组,那每次前两个有变动的时候,你怎么做呢?删除全部,然后重新添加……而假如你在它背后用了一个自己定义的model,那就简单了,直接作相应的改动,然后在model里fire event告诉JComboBox更新。这有时不仅是一点效率的问题,而是你有没有用更正确的方式,是不是更灵活,更易于维护和扩展。