除了使用数组来创建列表框外,还可以使用Vector数据结构来创建列表框。使用Vector方式创建列表框与使用数组的方式相似,只不过存储数据的方式不同而己。下面将通过一个实例来介绍这种创建列表框的方法。
该实例主要是创建了三个列表框对象,有两个列表框对象是通过数组的方式创建的,而另一个则使用Vector方式创建,通过此实例,可以比较一下两种创建列表框的方式,其程序代码如下所示:
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Vector;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.ListSelectionModel;
public class BWF {
public static void main(String[] args) {
JFrame jf=new JFrame("博为峰教育");
Container contentPane=jf.getContentPane();
contentPane.setLayout(new GridLayout(1, 3));
//创建两组数据
String[] s1={"美国","日本","中国","法国"};
String[] s2={"王靖宇","李鸿天","张合奕","刘雪哄"};
//创建一个Vector数据结构
Vector<String> v=new Vector<String>();
//将数据存储到Vector数据结构中
v.add("Apple 4");
v.add("Apple 4s");
v.add("Apple 5");
v.add("Apple 5s");
v.add("Apple 6");
v.add("Apple 6s");
v.add("Apple 7");
v.add("Apple 7s");
v.add("Apple 8");
v.add("其他");
JList<String> jl1=new JList<String>(s1);
//设置主题
jl1.setBorder(BorderFactory.createTitledBorder("你喜欢到那个国家玩?"));
JList<String> jl2=new JList<String>(v);
//一次只能选择一个列表索引
jl2.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
jl2.setBorder(BorderFactory.createTitledBorder("你喜欢那个型号的苹果手机?"));
JList<String> jl3=new JList<String>(s2);
jl3.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
jl3.setBorder(BorderFactory.createTitledBorder("你喜欢那个姓名称号?"));
contentPane.add(new JScrollPane(jl1));
contentPane.add(new JScrollPane(jl2));
contentPane.add(new JScrollPane(jl3));
jf.pack();
jf.setVisible(true);
jf.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}