同上

解决方案 »

  1.   

    新建一类继承抽象类AbstractListModel,实现getSize()和getElementAt(int index)方法,并自己再写一个removeIndex(int index)方法来实现删除。给按钮添加一个ActionListener,在事件处理中删除JList的某行。
      

  2.   

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.Vector;public class Test {
    private JFrame frame = null;
    private JButton button = null;
    private JList list = null;
    private DataModel data = null; public Test() {
    frame = new JFrame("Test");
    button = new JButton("删除");
    String [] str = {"1", "2", "3", "4", "5", "6"};
    data = new DataModel(str);
    list = new JList(data);
    list.setDragEnabled(true);
    frame.getContentPane().add(list);
    frame.getContentPane().add(button, BorderLayout.NORTH);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(300, 200);
    frame.setVisible(true);
    button.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e) {
    int index = list.getSelectedIndex();
    System.out.println(index);
    if(index == -1 || index >= data.getSize())
    return;
    data.removeIndex(index);
    list.updateUI();
    }});
    }
    public static void main(String[] args) {
    new Test();
    }
    }class DataModel extends AbstractListModel{
    private Vector data = null;
    public DataModel(Object [] listData){
    data = new Vector();
    for(int i = 0; i < listData.length; i++){
    data.add(listData[i]);
    }
    }
    public void addData(Object o){
    data.add(o);
    }
    public void removeIndex(int index){
    data.remove(index);
    }
    public int getSize() {
    return data.size();
    }
    public Object getElementAt(int index) {
    return data.get(index);
    }
    }
      

  3.   


    你先将JList与一个ListModel相关联,然后获得要删除的一项的index, 再使用listmodel的
    remove(int index)便可将其删除