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帮助文档。

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

  • 相关阅读:
    Data Visualisation Cheet Sheet
    数据预处理
    算法题目
    集成方法
    Mysql数据库重要知识点(知了堂学习心得)
    Working with Data » Getting started with ASP.NET Core and Entity Framework Core using Visual Studio » 创建复杂数据模型
    Working with Data » Getting started with ASP.NET Core and Entity Framework Core using Visual Studio » 排序、筛选、分页以及分组
    Working with Data » 使用Visual Studio开发ASP.NET Core MVC and Entity Framework Core初学者教程
    ASP.NET Core文档中Work with Data章节的翻译目录
    webpages框架中使用Html.TextArea()在前台显示多行信息时,如何进行大小、样式的设置
  • 原文地址:https://www.cnblogs.com/tianguook/p/2333992.html
Copyright © 2011-2022 走看看