列表框(JList)与下拉列表框的区别不仅表现在外观上,当激活下拉列表框时,还会出现下拉列表框中的内容;但列表框只是在窗体上占据固定的大小,如果需要列表框具有滚动效果,可以将列表框放入滚动面板中。
- 使用数组作为初始化列表框的参数。
String[] contents={"元素1","元素2","元素3","元素4"};
JList j1=new JList(contents);
- 使用Vector类型数据作为初始化列表框的参数。
Vector contents = new Vector();
JList j1=new JList(contents);
contents.add("元素1");
contents.add("元素2");
contents.add("元素3");
contents.add("元素4");
- 使用DefaultListModel类创建列表框。
String[] flavors={"元素1","元素2","元素3","元素4"};
DefaultListModel items=new DefaultListModel();
JList j1=new JList(items);
for(int i=0;i<4;i++){
items.addElement(flavors[i]);
}
- 完整代码
import java.awt.*;
import javax.swing.*;
public class Demo13 extends JFrame{
public Demo13() {
setBounds(100,100,217,167);
setDefaultCloseOperation(EXIT_ON_CLOSE);
Container c=getContentPane();
c.setLayout(null);
String items[]= {"元素1","元素2","元素3","元素4","元素5","元素6","元素7","元素8"};
JList<String> j1=new JList<>(items);
JScrollPane js=new JScrollPane(j1);
js.setBounds(10, 10, 100, 100);
c.add(js);
JButton btn = new JButton("确认");
btn.setBounds(120, 90, 70, 25);
btn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
java.util.List<String> values=j1.getSelectedValuesList();
for(String items:values) {
System.out.println(items);
}
System.out.println("------end-------");
}
});
c.add(btn);
setVisible(true);
public static void main(String[] args) {
new Demo13();
}
}