干得好 :
String [] string = {"city","town","country","province"};
java.util.List<String> list = new ArrayList<String>(Arrays.asList(string));
Object[] arrayObject= list.toArray();
String [] data = Arrays.copyOf(arrayObject, arrayObject.length,String[].class); // java 1.6+
JComboBox<String> combo = new JComboBox<>( data);
其实你可以这样做:
String [] string = {"city","town","country","province"};
java.util.List<String> list = new ArrayList<String>(Arrays.asList(string));
JComboBox< java.util.List<String>> combo = new JComboBox<>( );
combo.addItem(list);
但是,对于每个单独的JComboxBox
元素,将连续保存列表的所有元素。
*为了防止java.util.List
&之间的歧义java.awt.List
,我们应该清楚地声明它们。
这里是完整的演示:
import java.awt.*;
import javax.swing.*;
import java.util.*;
public class ComboBoxDemo extends JFrame {
public ComboBoxDemo() {
super("JComboBox Demo");
String [] string = {"city","town","country","province"};
java.util.List<String> list = new ArrayList<String>(Arrays.asList(string));
Object[] arrayObject= list.toArray();
String [] data = Arrays.copyOf(arrayObject, arrayObject.length,String[].class); // java 1.6+
JComboBox<String> combo = new JComboBox<>( data);
setLayout(new FlowLayout(FlowLayout.CENTER));
add(combo, BorderLayout.CENTER);
}
public static void main(String[] args) {
ComboBoxDemo g = new ComboBoxDemo();
g.setVisible(true);
g.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
g.setBounds(100, 100, 300, 300);
}
}

结果
JComboBox< java.util.List<String>> combo = new JComboBox<>( );
combo.addItem(list);
宣言 :
