JAVA列表的自动排序的列表

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
} public SortedListModelTest() {
//标题 setTitle("自动排序的列表"); //关增长 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //大小及位置 setBounds(100, 100, 450, 300); //面板容器 contentPane = new JPanel(); //边框 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); //布局 contentPane.setLayout(new BorderLayout(0, 0)); //将面板容器加入到窗体中 setContentPane(contentPane);
if (model.add(element)) { fireContentsChanged(this, 0, getSize());
} } }
package com.swing01;
import java.awt.BorderLayout; import java.awt.EventQueue;
import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder;
百度文库
import javax.swing.JScrollPane; import javax.swing.UIManager; import javax.swing.JList; import java.awt.Font;
public class SortedListModelTest extends JFrame { private static final long serialVersionUID = 8253911300573828115L; //面板容器 private JPanel contentPane; public static void main(String[] args) { try { //皮肤
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); } catch (Throwable e) { e.printStackTrace(); } EventQueue.invokeLater(new Runnable() { public void run() { try { SortedListModelTest frame = new SortedListModelTest(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } });
return model.toArray()[index]; } @Override //获得模型中元素的个数 public int getSize() {
return model.size(); } //向 TreeSet 中增加元素 public void add(Object element) {
import java.util.TreeSet;
import javax.swing.AbstractListModel; //该数据模型的抽象定义提供一个带内容的 List public class SortedListModel extends AbstractListModel {
private static final long serialVersionUID = -8908769624938773296L; //构造一个新的空 set,该 set 按照元素的自然顺序排序。 private TreeSet<Object> model = new TreeSet<Object>(); @Override //获取模型中指定索引的值 public Object getElementAt(int index) {
关键技术: 列表的元素都是存储在列表模型中的。因此,需要使用 ListModel 接口的实现类,java API 中对该接口提供了若干不同的实现,通常可以使用 DefaultListModel。该类使用 Vector 来存 储元素,并不能很地满足需求,所以我们使用 AbstractListModel。它提供了 ListModel 接口 定义的大部份方法实现,只需要实现获取列表长度的方法和获得到指索引处元素的方法。 int getSize(); Object getElementAt(int index) 在元素的存储上,使用 TreeSet 它会自动为存入其中的元素进行排序。 package com.swing01;
//滚动条 JScrollPane scrollPane = new JScrollPane(); //把滚动条添加进来 contentPane.add(scrollPane, BorderLayout.CENTER); //列表 JList list = new JList(); //列表字体 list.setFont(new Font("微软雅黑", Font.PLAIN, 16)); //滚动条添加列表 scrollPane.setViewportView(list); //排序 SortedListModel model = new SortedListModel(); //给模型添加内容 model.add("《Java 从入门到精通(第 2 版)》"); model.add("《PHP 从入门到精通(第 2 版)》"); model.add("《Visual Basic 从入门到精通(第 2 版)》"); model.add("《Visual C++从入门到精通(第 2 版)》"); model.add("《Java 编程词典》"); model.add("《Aava 说 Java》"); model.add("《视频学 Java》"); //把列表添加内容 list.setModel(model); } }
相关文档
最新文档