如何显示arraylist<;项目>;作为Java中的下拉列表

如何显示arraylist<;项目>;作为Java中的下拉列表,java,swing,arraylist,Java,Swing,Arraylist,使用swing开发一个简单的JavaGUI应用程序 我从文件中提取了一个ArrayList。如何将其显示为下拉列表供用户选择。以及如何获取用户选择的对象 如有任何建议,我们将不胜感激。此链接将帮助您创建下拉菜单: 在菜单中插入项的部分,只需循环遍历ArrayList项并逐个选择它们 for (int i = 0; i < list.size(); i++) { //insert in menu .. list.get(i); } for(int i=0;i

使用swing开发一个简单的JavaGUI应用程序

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


如有任何建议,我们将不胜感激。

此链接将帮助您创建下拉菜单:

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

for (int i = 0; i < list.size(); i++) {
    //insert in menu .. list.get(i); 
}
for(int i=0;i
actionlistener将处理该操作。ie知道选择了哪个元素


此处有更多信息:

此链接将帮助您创建下拉菜单:

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

for (int i = 0; i < list.size(); i++) {
    //insert in menu .. list.get(i); 
}
for(int i=0;i
actionlistener将处理该操作。ie知道选择了哪个元素


这里有更多信息:

这是一个使用固定字符串数组的示例。这是从该代码到从文件导入的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);
//定义字符串数组中的项:
字符串[]语言=新字符串[]{“英语”、“法语”、“西班牙语”、“日语”、“汉语”};
//使用固定数组创建组合框:
JComboBox comboLanguage=新的JComboBox(语言);

这是一个使用固定字符串数组的示例。这是从该代码到从文件导入的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);
//定义字符串数组中的项:
字符串[]语言=新字符串[]{“英语”、“法语”、“西班牙语”、“日语”、“汉语”};
//使用固定数组创建组合框:
JComboBox comboLanguage=新的JComboBox(语言);

查看
JComboBox
。您可以提供一个
ComboBoxModel
、一个数组或一个
向量
。如果您有一个
列表
,那么只需从中创建一个新的
向量

new JComboBox(new Vector(list));

如果希望combobox动态更改,则需要使用
ComboxModel

查看
JComboBox
。您可以提供一个
ComboBoxModel
、一个数组或一个
向量
。如果您有一个
列表
,那么只需从中创建一个新的
向量

new JComboBox(new Vector(list));

如果希望combobox动态更改,则需要使用
ComboBoxModel

如果有对象集合并希望显示值,则可以使用Vector类作为模型,然后使用BasicComboxRenderer类创建自定义渲染器来显示文本

    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;
    }
}
矢量数据=新矢量();
数据。附录(新员工(1001,“约翰·史密斯”);
数据。附录(新员工(1002,“琳达·贝克”);
数据.附录(新员工(1003,“Youcef Hussain”);
数据.附录(新员工(1004,“佳丽”);
JComboBox jcb=新的JComboBox(数据);
setRenderer(新的ComboBoxRenderer());
类ComboBoxRenderer扩展了javax.swing.plaf.basic.BasicComboxRenderer
{
公共组件getListCellRenderComponent(JList列表、对象值、int索引、布尔isSelected、布尔cellHasFocus)
{
员工emp=(员工)价值;
setText(emp.getName());
归还这个;
}
}
班级员工{
受保护的int员工id;
公共字符串employee_name;
公共雇员(整数id,字符串名称){
this.employee_id=id;
this.employee_name=姓名;
}
公共字符串getName(){
返回此.employee\u名称;
}
}

可以在此处找到完整的代码示例

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

    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;
    }
}
矢量数据=新矢量();
数据。附录(新员工(1001,“约翰·史密斯”);
数据。附录(新员工(1002,“琳达·贝克”);
数据.附录(新员工(1003,“Youcef Hussain”);
数据.附录(新员工(1004,“佳丽”);
JComboBox jcb=新的JComboBox(数据);
setRenderer(新的ComboBoxRenderer());
类ComboBoxRenderer扩展了javax.swing.plaf.basic.BasicComboxRenderer
{
公共组件getListCellRenderComponent(JList列表、对象值、int索引、布尔isSelected、布尔cellHasFocus)
{
员工emp=(员工)价值;
setText(emp.getName());
归还这个;
}
}
班级员工{
受保护的int员工id;
公共字符串employee_name;
公共雇员(整数id,字符串名称){
this.employee_id=id;
this.employee_name=姓名;
}
公共字符串getName(){
返回此.employee\u名称;
}
}
完整的代码示例可以在这里找到