jcombox和jlist的区别

来源:互联网 发布:青少年普法网络大赛 编辑:程序博客网 时间:2024/05/21 21:37

jList如下图所示:

它本身时没有滚动条的,可以添加JScrollPane对象绑定Jlist到滚动条。使用setVisibleRowCount()方法调节显示的选项数。


代码实现:

        DefaultListModel listIstgjs = new DefaultListModel();
        jList1.removeAll();        listIstgjs.removeAllElements();        List list_eq = service.getIstgjs();//可选择的设备列表        if (list_eq != null) {            for (int i = 0; i < list_eq.size(); i++) {                String[] info = (String[]) list_eq.get(i);                BaseElement element = new BaseElement(info[1], info[2]);                listIstgjs.addElement(element);            }        }        jList1.setModel(listIstgjs);
BaseElements这个类编写的很有意思,很适合配合jlist使用。

/* * To change this template, choose Tools | Templates * and open the template in the editor. */package com.qctc.entity.common;import java.io.Serializable;import java.util.Collection;import java.util.LinkedHashMap;import java.util.Map;/** * 基础元素父类 * @author Tian */public class BaseElement<T> implements Serializable {    private static final long serialVersionUID = -886206321375L;    protected String id;    protected String name;    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    @Override    public String toString() {        return name;    }    public BaseElement(String id, String name) {        this.id = id;        this.name = name;    }    public BaseElement() {    }    /**     * 将一个List、set 转化为Map,以方便查找     * @param <T>     * @param set     * @return      */    public static <T extends BaseElement> Map<String, T> set2Map(Collection<T> set) {        Map<String, T> result = new LinkedHashMap<String, T>();        for (T ele : set) {            result.put(ele.id, ele);        }        return result;    }    @Override    public boolean equals(Object obj) {        if (obj == null) {            return false;        }        if (getClass() != obj.getClass()) {            return false;        }        final BaseElement<T> other = (BaseElement<T>) obj;        if ((this.id == null) ? (other.id != null) : !this.id.equals(other.id)) {            return false;        }        return true;    }    @Override    public int hashCode() {        int hash = 3;        hash = 53 * hash + (this.id != null ? this.id.hashCode() : 0);        return hash;    }}
下面来看一下jcombox:


JComboBox  只有一行,但是点击右边向下箭头后,有一列可以选择,至于一列可以显示多少个列对象,可以通过setMaximumRow方法设置。

jcombox里面可以放很多有意思的对象,比如jcheckbox之类的。

        //初始化电压等级        jCb_Dydj.removeAllItems();        List<String[]> DyTypes = service.getDyStation();        if (DyTypes.size()>0) {            jCb_Dydj.addItem(new BaseElement("","--电压等级--"));            for (int i = 0; i < DyTypes.size(); i++) {                String[] info = DyTypes.get(i);                jCb_Dydj.addItem(new BaseElement(info[1],info[1]));                 }        }
应用场景:点击选中获得选中对象

String Dydj = ((BaseElement)jCb_Dydj.getSelectedItem()).getId();
录入一条数据后,点击重置重置jcombox的选项。

jCb_Dydj.setSelectedIndex(0);
选中第一位就可以了。第一位一般name为业务需求,id为空


原创粉丝点击