JList按字母顺序排列

eme*_*ava 4 java swing

我有以下演示应用程序,它显示值列表,但我需要能够控制列表中元素的顺序.什么是添加此最简单的方法?

package demo;

import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.ListModel;

public class JListOrder {

    public JListOrder()
    {
        JFrame frame = new JFrame("JListOrder");

        DefaultListModel model = new DefaultListModel();
        model.addElement("z");
        model.addElement("Z");
        model.addElement("a");
        model.addElement("A");
        model.addElement("C");
        model.addElement("c");
        model.addElement("b");
        model.addElement("B");

        JList list = new JList(model);
        frame.add(list);
        frame.setSize(200,200);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        new JListOrder();
    }
}
Run Code Online (Sandbox Code Playgroud)

kle*_*tra 7

最简单的方法是使用支持JXList排序/过滤的SwingX,方法与核心表排序/过滤相同:

JXList list = new JXList(model);
list.setAutoCreateRowSorter(true);
list.toggleSortOrder();
Run Code Online (Sandbox Code Playgroud)