如何显示arraylist<;项目>;作为Java中的下拉列表
使用swing开发一个简单的JavaGUI应用程序 我从文件中提取了一个ArrayList。如何将其显示为下拉列表供用户选择。以及如何获取用户选择的对象如何显示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
如有任何建议,我们将不胜感激。此链接将帮助您创建下拉菜单: 在菜单中插入项的部分,只需循环遍历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名称;
}
}
完整的代码示例可以在这里找到