如何在Java </items>中显示arraylist <items>作为下拉列表

时间:2015-04-03 16:17:33

标签: java swing arraylist

使用swing开发一个简单的Java GUI应用程序。

我从文件中获取了一个ArrayList。如何将其显示为下拉供用户选择。以及如何获取用户选择的对象。??

任何建议都将不胜感激。

4 个答案:

答案 0 :(得分:2)

此链接可帮助您创建下拉菜单:http://www.java2s.com/Code/Java/Swing-JFC/Usingdropdownlists.htm

在菜单中插入项目的部分中,只需循环遍历ArrayList项目并逐个选择它们。

for (int i = 0; i < list.size(); i++) {
    //insert in menu .. list.get(i); 
}

actionlistener将负责该操作。即知道哪个元素被选中。

此处提供更多信息:https://docs.oracle.com/javase/tutorial/uiswing/events/actionlistener.html

答案 1 :(得分:2)

查看JComboBox&#39; s constructors。您可以提供ComboBoxModel,数组或Vector。如果您有List,那么只需从中创建一个新的Vector

new JComboBox(new Vector(list));

如果您希望动态变体动态更改,那么您需要使用ComboBoxModel

答案 2 :(得分:1)

这是使用固定字符串数组的示例。从这段代码到从文件导入的arrayList是一个相当简单的推断:

// define items in a String array:
    String[] languages = new String[] {"English", "French", "Spanish", "Japanese", "Chinese"};

    // create a combo box with the fixed array:
    JComboBox<String> comboLanguage = new JComboBox<String>(languages);

答案 3 :(得分:1)

如果您有一组对象并想要显示值,则可以使用Vector类作为模型,然后使用BasicComboBoxRenderer类创建自定义渲染器以显示文本。

    Vector<Employee> data = new Vector<Employee>();
    data.addElement(new Employee(1001, "John Smith"));
    data.addElement(new Employee(1002, "Linda Baker"));
    data.addElement(new Employee(1003, "Youcef Hussain"));
    data.addElement(new Employee(1004, "Jia Lia"));

    JComboBox jcb = new JComboBox(data);
    jcb.setRenderer(new ComboBoxRenderer());

class ComboBoxRenderer extends javax.swing.plaf.basic.BasicComboBoxRenderer
{
    public Component getListCellRendererComponent(JList list,Object value,int index,boolean isSelected,boolean cellHasFocus)
    {
        Employee emp = (Employee)value;
        setText(emp.getName());
        return this;
    }
}

class Employee{
    protected int employee_id;
    public String employee_name;

    public Employee(int id, String name){
        this.employee_id = id;
        this.employee_name = name;
    }

    public String getName(){
        return this.employee_name;
    }
}

可在此处找到完整的代码示例http://www.hostprojects.net/snippets/java/158/basiccomboboxrenderer-example