JList动态添加元素

 学Java时用到了JList不知怎么添加元素,这里说说我的经验:

   Jlist显示对象列表并且允许用户选择一个或多个项的组件。单独的模型 ListModel 维护列表的内容。

   这里要注意在把Jlist添加到容器时可以选择用JScrollPane(提供轻量级组件的 scrollable 视图。JScrollPane 管理视口、可选的垂直和水平滚动条以及可选的行和列标题视口。)

 例如:JPanel jp = new JPanel();

       JScrollPane  jsp = new JScrollPane();

       JList jl = new JList();

       jsp.add(jl);

       jp.add(jsp);

    这里只是个例子:为了说明JList 对象不能直接添加到JPanel中,而是要添加到JScrollPane中,之后再把JScrollPane 对象添加到JPanel中。这里没有加有关布局管理器的代码,读者可以根据这个思想自行添加。(这只是我的经验,如有更好的方法还请补充)。

    再说说如何动态的添加元素到JList中:

   先举例说明静态的添加元素:

    String[] data = {"one", "two", "three", "four"};
    JList myList = new JList(data);
   

    Vector superClasses = new Vector();
    Class rootClass = javax.swing.JList.class;
    for(Class cls = rootClass; cls != null; cls = cls.getSuperclass()) {
        superClasses.addElement(cls);
    }
    JList myList = new JList(superClasses);

 

    ListModel model = myList.getModel();
    for(int i = 0; i < model.getSize(); i++) {
         System.out.println(model.getElementAt(i));
    }
    这三种都是jdk文档里的例子,都是在创建JList的时候静态的添加元素,添加后不能修改,删除,增加。

    如果要动态的添加,以下是我的经验:

    按我的理解,其实JList不管数据的添加,而是由DefaultListModel类实现数据的添加,先说说这个类的继承关系。

    ListMode(接口)<----AbstractListMode类<------DefaultListModel类
    例如:

    DefaultListModel dlm = new DefaultListModel();

    dlm.addElement(element1);

    dlm.addElement(element2);

    .....

    JList jl = new JList();

    jl.setModel(dlm);

    这样就把元素都添加进去了。

同理:要删除全部信息

    dlm.clear();

    jl.setModel(dlm);

即可。

移除此列表中指定位置处的元素

则:

    dlm.remove(int index);

    jl.setModel(dlm);

 

总之,就是JList不管元素的添加,而是由DefaultListMode管,最后设置Jlist.setMode(DefaultListMode)就完成了元素的动态添加。想了解更多有关Jlist的知识请查询Jdk帮助文档。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值