import javax.swing.*;
import javax.swing.event.ListSelectionListener;
import javax.swing.event.ListSelectionEvent;
class Ty{
public static void main(String arr[]){
String str[]={"Human","Element","Air","Animal","Plant"};
JList<String> jlist=new JList<String>(str);
jlist.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
//setSelectionMode()无论设置哪个参数都和没有进行设置一样,毫无作用。
jlist.addListSelectionListener(new ListSelectionListener(){
public void valueChanged(ListSelectionEvent e){
System.out.println(str[((JList)e.getSource()).getSelectedIndex()]);
}
});
JScrollPane jsp=new JScrollPane(jlist);
JFrame jframe=new JFrame();
jframe.add(jsp);
jframe.setSize(250,150);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jframe.setVisible(true);
}
}
到底是哪里出现了问题?顺便一提,用鼠标对JList的项目进行选择时,mouseDown会触发一次valueChanged(),mouseUp也会触发一次valuechanged(),也就是click一次会触发valueChanged()方法两次,这是正常的吗?