我的jlist是用jlist.setlistdata初始化的

解决方案 »

  1.   

    我这里有个例子,可以满足你的要求。
    import javax.swing.*;
    import javax.swing.event.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.border.*;public class List1 extends JApplet {
      String[] flavors = { "Chocolate", "Strawberry",
        "Vanilla Fudge Swirl", "Mint Chip",
        "Mocha Almond Fudge", "Rum Raisin",
        "Praline Cream", "Mud Pie" };
      DefaultListModel lItems1=new DefaultListModel();
      DefaultListModel lItems2=new DefaultListModel();
      JList list1 = new JList(lItems1);
      JList list2=new JList(lItems2);
      JButton b = new JButton("Add Item");
      ActionListener bl = new ActionListener() {
        public void actionPerformed(ActionEvent e) {
          if(!list1.isSelectionEmpty()) {
            Object[] allSelected = list1.getSelectedValues();
            for(int i = 0; i < allSelected.length; i++) {
              lItems2.addElement((String)allSelected[i]);
              lItems1.removeElement(allSelected[i]);
            }
          }
        }
      };
      public void init() {
        Container cp = getContentPane();
        cp.setLayout(new FlowLayout());
        // Create Borders for components:
        Border brd = BorderFactory.createMatteBorder(
          1, 1, 2, 2, Color.black);
        list1.setBorder(brd);
        list2.setBorder(brd);
        lItems1.addElement("List1");
        for(int i = 0; i < flavors.length; i++) {
          lItems1.addElement(flavors[i]);
        }
        lItems2.addElement("List2");
        cp.add(list1);
        cp.add(list2);
        cp.add(b);
        b.addActionListener(bl);
      }
      public static void main(String[] args) {
        Console.run(new List1(), 450, 300);
      }
    }class Console {
      // Create a title string from the class name:
      public static String title(Object o) {
        String t = o.getClass().toString();
        // Remove the word "class":
        if(t.indexOf("class") != -1)
          t = t.substring(6);
        return t;
      }
      public static void setupClosing(JFrame frame) {
        // The JDK 1.2 Solution as an 
        // anonymous inner class:
        frame.addWindowListener(new WindowAdapter() {
          public void windowClosing(WindowEvent e) {
            System.exit(0);
          }
        });
        // The improved solution in JDK 1.3:
        // frame.setDefaultCloseOperation(
        //     EXIT_ON_CLOSE);
      }
      public static void 
      run(JFrame frame, int width, int height) {
        setupClosing(frame);
        frame.setSize(width, height);
        frame.setVisible(true);
      }
      public static void 
      run(JApplet applet, int width, int height) {
        JFrame frame = new JFrame(title(applet));
        setupClosing(frame);
        frame.getContentPane().add(applet);
        frame.setSize(width, height);
        applet.init();
        applet.start();
        frame.setVisible(true);
      }
      public static void 
      run(JPanel panel, int width, int height) {
        JFrame frame = new JFrame(title(panel));
        setupClosing(frame);
        frame.getContentPane().add(panel);
        frame.setSize(width, height);
        frame.setVisible(true);
      }
    }
      

  2.   

    你必须用ListModel来添加删除元素ListModel mymodel=mylist.getModel();
    mymodel.removeElement("a");
    mymodel.addElement("a");
      

  3.   

    嗯这个不是很难了,就是把第一个list里面的选中的重新加到右边的list,然后把左边的删掉就好了,不过删除的时候有一点点麻烦吧?也容易解决就是了,呵呵