如下,我在一个我定义的panel类里定义:
private String []item={"64MB","128MB","256MB","512MB","1GB","other"};
private JComboBox ramSpeed=new JComboBox(item);
int speed=0;
构造函数中:
ramSpeed.addItemListener(this);
ramSpeed.setSelectedIndex(2);
ITEM方法中:
public void itemStateChanged(ItemEvent e){
if(ramSpeed.getSelectedIndex()==0)
speed=115600;//这里的数字我瞎写的,程序中的我不记得了
else(ramSpeed.getSelectedIndex()==1)
speed=237648;
...
...//省略部分直到1GB
else{//最后一个就是other,自定义
String str=JOptionPane.showInputDialog(this,"请输入自定义值:",23455);
if (str!=null)
speed=Integer.parseInt(str);
}
System.out.println("ok");
}
现在的问题是这个事件只要选择一个item项,它执行两次,最后一项尽然弹两次文本输入框。我用了一个println跟在这个事件后面测试了,无论选哪个,它都打印两遍println的结果:
ok
ok
是什么原因,我想的是选一项就改一项啊,不想要它两次执行的。
private String []item={"64MB","128MB","256MB","512MB","1GB","other"};
private JComboBox ramSpeed=new JComboBox(item);
int speed=0;
构造函数中:
ramSpeed.addItemListener(this);
ramSpeed.setSelectedIndex(2);
ITEM方法中:
public void itemStateChanged(ItemEvent e){
if(ramSpeed.getSelectedIndex()==0)
speed=115600;//这里的数字我瞎写的,程序中的我不记得了
else(ramSpeed.getSelectedIndex()==1)
speed=237648;
...
...//省略部分直到1GB
else{//最后一个就是other,自定义
String str=JOptionPane.showInputDialog(this,"请输入自定义值:",23455);
if (str!=null)
speed=Integer.parseInt(str);
}
System.out.println("ok");
}
现在的问题是这个事件只要选择一个item项,它执行两次,最后一项尽然弹两次文本输入框。我用了一个println跟在这个事件后面测试了,无论选哪个,它都打印两遍println的结果:
ok
ok
是什么原因,我想的是选一项就改一项啊,不想要它两次执行的。
if(e.getStateChange() == ItemEvent.SELECTED)//搞定