例如:
package Swing组件;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;
public class Demo08 extends JFrame {
public Demo08(){
setBounds(100,100,300,200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
Container c = getContentPane();
c.setLayout(null);
String items[] = {"元素1","元素2","元素3","元素4",
"元素5","元素6","元素7","元素8"};
// JList<String> jl = new JList<>(items);
//列表框的数据模型
DefaultListModel<String> model = new DefaultListModel<>();
for(String tmp:items){
model.addElement(tmp); //向数据模型添加元素
}
JList<String> jl = new JList<>(items);
model.addElement("添加元素"); //数据模型可以新添加新元素
jl.setModel(model); //列表框载入数据模型
/*
ListSelectionModel.SINGLE_SELECTION // 单选模式
ListSelectionModel.SINGLE_INTERVAL_SELECTION // 只能选择相邻的
ListSelectionModel.MULTIPLE_INTERVAL_SELECTION // 随便选
*/
jl.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
JScrollPane js =new JScrollPane(jl); //为列表框添加滚动条
js.setBounds(10,10,100,100);
c.add(js);
JButton btn = new JButton("确认");
btn.setBounds(120,90,70,25);
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//获取列表框中选中的所有元素
List<String> velues = jl.getSelectedValuesList();
for(String tmp:velues){
System.out.println(tmp);
}
System.out.println("------end---------");
}
});
c.add(btn);
setVisible(true);
}
public static void main(String[] args) {
new Demo08();
}
}
运行结果: