JLIST复选框问题

之前是希望​实现复选框多选且不是连续选

list.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

其中的参数我们选择可以复选的multiple,还有一个关键的地方是我们需要在监听事件地方将我们每一次选中的数组存到里面去,

同时由于set函数的添加方式会发生覆盖问题,这里我们并没有采用add方式,而是采用了​set ​本次加上上次的所选的数值

同时我们通过案例,​我们需要注意的是​:每次的选中次序 比如先从上到下 和从下到上的顺序情况

package Z9_9;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class Z9_9_basis implements ItemListener,ListSelectionListener
{
JList list;
JComboBox comboBox;
JTextArea ta;
public Z9_9_basis() {
// TODO Auto-generated constructor stub
JFrame jFrame=new JFrame("列表框与组合框测试");
String [] item={"中山大学","华南理工","背景大学","韶关学院"};
list = new JList(item);
//list.setSelectedIndex(1);
list.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
list.addListSelectionListener(this);
Container contentPane=jFrame.getContentPane();
contentPane.setLayout(new GridLayout(1,2));
JPanel jp=new JPanel();
ta=new JTextArea(50,50);
jp.add(ta);
contentPane.add(new JScrollPane(list));
contentPane.add(jp);
jFrame.setSize(800,600);
jFrame.setVisible(true);
}

public static void main(String[] args) {
// TODO Auto-generated method stub
new Z9_9_basis();
}
@SuppressWarnings("deprecation")
@Override
public void valueChanged(ListSelectionEvent e) {
if(e.getSource() == list)
{
Object[] str = list.getSelectedValues();//将选中的数值存在str中
for(Object s:str){
ta.setText(ta.getText()+(String)s);//做保留处理
}
}
}

@Override
public void itemStateChanged(ItemEvent e) {
// TODO Auto-generated method stub

}

}