其实要解决这样的问题,方法很多,一个很简单的方法就是使用两个jComboBox,一个放内容,一个放值,放值的那个保持不可见,保持与第一个的同步选择,这样是可以解决的,
还有一种方法就是构造一个类啊,改写他的toString方法,里面放两个属性,一个是显示,一个是值,这样不就是可以解决了吗?
其实还有更多的方法的,比如改写一下Jcombobox啊。自己构造一个了。

解决方案 »

  1.   

    谢谢,你的意思我基本明白,但是做的时候出错,代码如下:class jymItem extends JComboBox {
      private java.util.Hashtable items = new java.util.Hashtable();
      public jymItem() {
        super();
      }
      public void addItem(String itemName,String itemValue) {
        super.addItem(itemName);
        items.put(itemName,itemValue);
      }  public Object getSelectedItem() {
        return items.get((String)super.getSelectedItem());
      }
    }-------
    使用的时候总要发生空指针错误:
    java.lang.NullPointerException  at java.io.StringReader.<init>(StringReader.java:36)  at javax.swing.JEditorPane.setText(JEditorPane.java:1222)  at bankgui.mainFrame.jComboBox_jym_actionPerformed(mainFrame.java:199)  at bankgui.mainFrame$2.actionPerformed(mainFrame.java:158)  at javax.swing.JComboBox.fireActionEvent(JComboBox.java:870)  at javax.swing.JComboBox.selectedItemChanged(JComboBox.java:894)  at javax.swing.JComboBox.contentsChanged(JComboBox.java:946)  at javax.swing.AbstractListModel.fireContentsChanged(AbstractListModel.java:79)  at javax.swing.DefaultComboBoxModel.setSelectedItem(DefaultComboBoxModel.java:86)  at javax.swing.DefaultComboBoxModel.addElement(DefaultComboBoxModel.java:124)  at javax.swing.JComboBox.addItem(JComboBox.java:510)  at bankgui.jymItem.addItem(mainFrame.java:24)  at bankgui.mainFrame.jbInit(mainFrame.java:166)  at bankgui.mainFrame.<init>(mainFrame.java:94)  at bankgui.bankApp.<init>(bankApp.java:20)  at