我写了一个JComboBox,添加了一个数组进去。我想当点击其中的项时就打出那一项的内容来,可是在点击的时候却打出了两个,这是怎么回事啊?                JComboBox comboBox = new JComboBox();
comboBox.setEditable(true);
comboBox.setBackground(Color.WHITE);
String[] item = {"请您选择或直接输入","www.163.com","www.yahoo.com","www.baidu.com","www.sohu.com","www.sina.com"};
for(int i=0; i<item.length; i++) {
    String show = item[i].toString();
    comboBox.addItem(show);
}
comboBox.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent arg0) {
// TODO Auto-generated method stub
address = comboBox.getSelectedItem().toString();
System.out.println(address);//就在这会打出两个结果,比如点www.sohu.com就会在控制台里打出两个www.sohu.com
}
});

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【jidushanbojue】截止到2008-07-31 11:19:18的历史汇总数据(不包括此帖):
    发帖的总数量:21                       发帖的总分数:335                      每贴平均分数:15                       
    回帖的总数量:18                       得分贴总数量:2                        回帖的得分率:11%                      
    结贴的总数量:21                       结贴的总分数:335                      
    无满意结贴数:9                        无满意结贴分:200                      
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:42.86 %               无满意结分率:59.70 %                  
    敬礼!

    取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=jidushanbojue
      

  2.   

    comboBox.addItemListener(new ItemListener(){
                public void itemStateChanged(ItemEvent arg0) {
                    // TODO Auto-generated method stub
                    address = comboBox.getSelectedItem().toString();
                    System.out.println(address);//就在这会打出两个结果,比如点www.sohu.com就会在控制台里打出两个www.sohu.com
                }
            });
    加一个if
        comboBox.addItemListener(new ItemListener() {        public void itemStateChanged(ItemEvent arg0) {
                // TODO Auto-generated method stub            if (arg0.getStateChange() == ItemEvent.SELECTED) {
                    address = comboBox.getSelectedItem().toString();
                    System.out.println(address);//就在这会打出两个结果,比如点www.sohu.com就会在控制台里打出两个www.sohu.com            }        }
        });
      

  3.   

    itemStateChanged
    void itemStateChanged(ItemEvent e)
    在用户已选定或取消选定某项时调用。
    为此方法编写的代码将执行需要在已选定(或已取消选定)项时发生的操作。API中说的!
      

  4.   

    void itemStateChanged(ItemEvent e)在用户已选定取消选定某项时调用。为此方法编写的代码将执行需要在已选定(或已取消选定)项时发生的操作。
      

  5.   

    comboBox = new JComboBox();
            comboBox.setEditable(true);
            comboBox.setBackground(Color.WHITE);
            String[] item = {"请您选择或直接输入","www.163.com","www.yahoo.com","www.baidu.com","www.sohu.com","www.sina.com"};
            for(int i=0; i<item.length; i++) {
                String show = item[i].toString();
                comboBox.addItem(show);
            }
            comboBox.addActionListener(new ActionListener(){//这里
                public void actionPerformed(ActionEvent arg0) {
                    // TODO Auto-generated method stub
                    address = comboBox.getSelectedItem().toString();
                    System.out.println(address);
                }
            });