怎么实现jcombobox中值和显示不同
如显示是中国,但要取得当前被选的中国的值是china
[解决办法]
你可以写二个数组:一个对应中文(界面显示),一个对应英文(你所需要的值) 注意位置的相对应;
把中文数组传给JComboBox 的ComboBoxModel;
当选择了时,通过getSelectedIndex()方法得到选择的对应中文数组中索引.
再根据索引取得英文数组中对应索引中的值.
你知道两个JComboBox 绑定不?哪个也可以实现.
下面是一个例子:
希望对你有用:仅供参考.
import java.awt.BorderLayout;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import javax.swing.ComboBoxModel;import javax.swing.DefaultComboBoxModel;import javax.swing.JComboBox;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.SwingUtilities;import javax.swing.WindowConstants;public class JComboboxTest extends javax.swing.JFrame { private JPanel jPanel1; private JComboBox jComboBox1; private String[] zh = new String[] { "中国", "美国" }; private String[] en = new String[] { "China", "USA" }; private ComboBoxModel jComboBox1Model = new DefaultComboBoxModel(zh); public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { JComboboxTest inst = new JComboboxTest(); inst.setLocationRelativeTo(null); inst.setVisible(true); } }); } public JComboboxTest() { super(); initGUI(); } private void initGUI() { try { setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); { jPanel1 = new JPanel(); getContentPane().add(jPanel1, BorderLayout.CENTER); jComboBox1 = new JComboBox(); jPanel1.add(jComboBox1); jComboBox1.setModel(jComboBox1Model); jComboBox1.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent evt) { jComboBox1ItemStateChanged(evt); } }); } pack(); setSize(400, 300); } catch (Exception e) { e.printStackTrace(); } } private void jComboBox1ItemStateChanged(ItemEvent evt) { if(evt.getStateChange()==1) JOptionPane.showMessageDialog(null, "你选择的是:"+evt.getItem()+" "+en[this.jComboBox1.getSelectedIndex()]); }}