import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.*;
import static java.awt.BorderLayout.*;public class List {
        JFrame f=new JFrame();

       
        DefaultListModel model1 = new DefaultListModel();
        DefaultListModel model2 = new DefaultListModel();
        
          JList l=new JList(model1); 
          JList r=new JList(model2);
          JPanel p=new JPanel();
          JButton zuo=new JButton("<<");
          JButton you=new JButton(">>");
          

public void init()

          model1.addElement("选项1");
          model1.addElement("选项3");
          model2.addElement("选项2");
  you.addActionListener(new B());        
f.setLayout(new BorderLayout());
f.add(l,WEST);
f.add(r,EAST);
f.add(p,CENTER);
p.setLayout(new BorderLayout());
p.add(you,SOUTH);
p.add(zuo,NORTH);

f.pack();
f.setSize(500,300);
f.setVisible(true);

}class B implements ActionListener{
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==you)

{
model1.removeElement(l.getSelectedIndex());

}
}
}
public static void main(String[] args)
{
new List().init();

}
}
我点击按钮“>>” 为什么l列表里面的选项不会删除掉?

解决方案 »

  1.   

    删除函数调用错了吧、、import java.awt.BorderLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;import javax.swing.*;
    import static java.awt.BorderLayout.*;public class Tet2 
    {
    JFrame f = new JFrame(); DefaultListModel model1 = new DefaultListModel();
    DefaultListModel model2 = new DefaultListModel(); JList l = new JList(model1);
    JList r = new JList(model2);
    JPanel p = new JPanel();
    JButton zuo = new JButton("<<");
    JButton you = new JButton(">>"); public void init()
    {
    model1.addElement("选项1");
    model1.addElement("选项3");
    model2.addElement("选项2");
    you.addActionListener(new B()); f.setLayout(new BorderLayout());
    f.add(l, WEST);
    f.add(r, EAST);
    f.add(p, CENTER);
    p.setLayout(new BorderLayout());
    p.add(you, SOUTH);
    p.add(zuo, NORTH); f.pack();
    f.setSize(500, 300);
    f.setVisible(true); } class B implements ActionListener
    {
    public void actionPerformed(ActionEvent e)
    {
    if (e.getSource() == you) {
    // model1.clear();
    System.out.println(l.getSelectedIndex());
    model1.removeElementAt(l.getSelectedIndex()); }
    }
    } public static void main(String[] args)
    {
    new Tet2().init(); }
    }
      

  2.   

    应该用removeElementAt,他接受index。你写的应该传对象。