实现下拉列表JComboBox中值和显示不同



实现下拉列表JComboBox中值和显示不同

实现下拉列表JComboBox中值和显示不同

网友回复:呵呵,自己也一个类继续serializable类,重写toString方法就可以了
public class myObj implements Serializable {

private String displayName = null;
private String value = null;

public myObj(String aDisplayName, String aValue) {
this.displayName = aDisplayName;
this.value = aValue;
}

public String toString() {
return this.displayName.toString();
}

public String getDisplayName() {
return this.displayName;
}

public String getValue() {
return this.value;
}
}

public Vector getVector() {
Vector vector = new Vector();
myObj obj = new myObj(“单位1″, “danwei1″);
vector.add(obj);
obj = new myObj(“单位2″, “danwei2″);
vector.add(obj);
obj = new myObj(“单位3″, “danwei2″);
vector.add(obj);
obj = new myObj(“单位4″, “danwei4″);
vector.add(obj);
obj = new myObj(“单位5″, “danwei5″);
vector.add(obj);
obj = new myObj(“单位6″, “danwei6″);
vector.add(obj);
return vector;
}

 

Vector vector =new Vector();
myObj obj = new myObj(“中国”,”china”);
v.add(obj);

Vector vector = this.getVector();

JComboBox box = new JComboBox(vector);
获取
myObj myobj = (myObj)box.getModel().getSelectedItem();
System.out.println(myobj.getValue());

不知道这样能不能满足你的要求。

 

下拉列表(JComboBox)使用方法及示例详解


 

如果我们仅仅有两三个选项,那么用复选框和单选按钮就能胜任,可是如果我们有很多选择项,那么使用它们就不太合适了,我们可以使用下拉列表来实现这一功能。

JComboBox() 建立一个JComboBox组件。
JComboBox(ComboBoxModel model) 根据model建立一个JComboBox组件。
JComboBox(Object[] items) 利用数组对象建立一个JComboBox组件。
JComboBox(Vector items) 利用Vector对象建立一个JComboBox组件。

下拉列表使用示例:

import java.awt.*;
import javax.swing.*;

public class JComboBoxDemo extends JFrame{
public JComboBoxDemo(){
Container contentPane=this.getContentPane();
JPanel jPanel1=new JPanel(new GridLayout(1,2));

//利用String数组建立JComboBox
String[] fruit={“苹果”,”香蕉”,”桔子”,”梨”,”芒果”};
JComboBox jComboBox1=new JComboBox(fruit);
jComboBox1.addItem(“其他”); //在列表框选项的最后再添加一个”其他”选项

//设置jList1对象的带标题边框
jComboBox1.setBorder(BorderFactory.createTitledBorder(“您最喜欢的水果:”));
jPanel1.add(jComboBox1);

//利用ComboBoxModel建立JComboBox
ComboBoxModel myModel=new MyModel();
JComboBox jComboBox2=new JComboBox(myModel);
jComboBox2.setBorder(BorderFactory.createTitledBorder(“您最喜欢的水果:”));
jPanel1.add(jComboBox2);
contentPane.add(jPanel1);
this.setTitle(“JComboBoxDemo”);
this.setSize(350,90);
this.setVisible(true);
}

class MyModel extends DefaultComboBoxModel{
String[] fruit={“苹果”,”香蕉”,”桔子”,”梨”,”芒果”};
MyModel(){
for(int i=0;i<fruit.length;i++){
/* addElement()方法用于向列表框添加选项元素 */
this.addElement(fruit[i]);
}
}
}

public static void main(String args[]){
JComboBoxDemo test=new JComboBoxDemo();
}
}

运行效果如下图所示:
实现下拉列表JComboBox中值和显示不同 – alpsdyk2001 – 编程学习!

上面这个实例分别用 String 数组和 ComboBoxModel 对象建立了两个 JComboBox 组件对象,在实际应用中根据具体情况调用恰当的方法建立 JComboBox 组件对象。其中 ComboBoxModel 是一个接口,要通过它建立 JComboBox 必须实现里面定义的所有方法,好在 Java 还提供了 DefaultComboBoxModel 实体类。此类实现了 ComboBoxModel 接口,并且提供了一些常用的方法,利用它我们可以很方便地建立 JComboBox 对象。