首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

如何实现jcombobox中值和显示不同

2011-12-27 
怎么实现jcombobox中值和显示不同如显示是中国,但要取得当前被选的中国的值是china[解决办法]你可以写二个

怎么实现jcombobox中值和显示不同
如显示是中国,但要取得当前被选的中国的值是china

[解决办法]
你可以写二个数组:一个对应中文(界面显示),一个对应英文(你所需要的值) 注意位置的相对应;
把中文数组传给JComboBox 的ComboBoxModel;
当选择了时,通过getSelectedIndex()方法得到选择的对应中文数组中索引.
再根据索引取得英文数组中对应索引中的值.


你知道两个JComboBox 绑定不?哪个也可以实现.

下面是一个例子:
希望对你有用:仅供参考.

Java code
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()]);    }} 

热点排行