如题,我在使用checkbox时,它们都返回我所点击的选项。请问大家究竟什么时候才能发现它们的区别呢??谢谢!

解决方案 »

  1.   

    getItemSelectable
    public ItemSelectable getItemSelectable()返回事件的产生程序。 
    返回:产生事件的 ItemSelectable 对象。getItem
    public Object getItem()返回受事件影响的项。 
    返回:受事件影响的项(对象)
      

  2.   

    想不为五斗米折腰,难啊mq兄,API里面的确是这样说的,但使用的时候这两者没有区别啊?你认为呢。大家来谈谈自己的看法啊,难道是getItemSelectable发展于getitem??
      

  3.   

    先看看ItemEvent的构造:public ItemEvent(ItemSelectable source, int id, Object item, int stateChange)构造一个 ItemEvent 对象。 
    注意,传递无效 id 会导致不确定的行为。如果 source 为 null,则此方法抛出 IllegalArgumentException。 
    参数:
    source - 产生事件的 ItemSelectable 对象
    id - 标识事件类型的整数
    item - 一个对象,即受事件影响的项
    stateChange - 指示已选定还是已取消选定项的整数 
    抛出: 
    IllegalArgumentException - 如果 source 为 null
    代码:
    public ItemEvent(ItemSelectable source, int id, Object item, int stateChange) {
        super(source, id);
        this.item = item;
        this.stateChange = stateChange;
    }再来看看getItemSelectable()方法和getItem()方法的代码:
    public ItemSelectable getItemSelectable() {
        return (ItemSelectable)source;
    }
    public Object getItem() {
        return item;
    }从上面的代码可以看出两个方法所返回的不一样,一个是实现了ItemSelectable接口的选择组件,一个是最原始的Object。
    现在JCheckbox在发生事件时都返回你所点击的选项,我认为这是因为你的点击动作返回事件的产生程序和你点击后所影响的的项是完全一样的,所以在这里都返回你所点击的选项。
    何时不一样?还没有碰到过。