zoukankan      html  css  js  c++  java
  • 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帮助文档。

    以上都是我的一点经验,欢迎大家讨论纠错。

  • 相关阅读:
    (转)Java并发包:AtomicBoolean和AtomicReference
    (转)maven怎么 引入(或引用/使用) 自定义(或本地/第三方) jar的三种方式 图文教程 方法二最简单
    servlet3.0 异步处理
    (转)Groovy简介
    (转)springboot应用启动原理(一) 将启动脚本嵌入jar
    (转)springboot应用启动原理(二) 扩展URLClassLoader实现嵌套jar加载
    (转)运行jar应用程序引用其他jar包的四种方法 -- ClassLoader应用
    (转)二层网络结构和三层网络结构的对比
    Java语法糖4:内部类
    Java语法糖3:泛型
  • 原文地址:https://www.cnblogs.com/tianguook/p/2333992.html
Copyright © 2011-2022 走看看