JComboBox

来源:百度知道 编辑:UC知道 时间:2024/09/26 10:43:49
{
JTextField jt=new JTextField(10);
String str[]={"AAA","BBB","CCC"};
JComboBox JCB=new JComboBox(str);
JCB.setMaximumRowCount(3);
JCB.addItemListener(this);
}
public void itemStateChanged(ItemEvent e){
jt.setText(JCB.getSelectedItem());

这是我程序的一部分,程序可以运行,但是,因为默认项是“AAA”,所以当程序运行后,如果在下拉列表中还是选“AAA”的话,就不会在JTextField中显示,但是如果选择“BBB”或“CCC”就可以,而且如果选择“BBB”或“CCC”后再选“AAA”,就可以显示了。
这是为什么??

能不能第一次选“AAA”的时候就可以在JTextField中显示啊~~
我试了很多方法,因为第一个item(“AAA”)初始化时就是SelectedItem,所以再次选中(第一次),等于是没有changeState,所以就不触发事件。
如果先选择其他的itme(“BBB”,“CCC“),等于第一个item(“AAA”)changeState,随后再次选“AAA”,就触发事件。
能不能有什么方法可以解决这个问题啊~~在线等~~

不知道你注意到没有,一般用JComboBox的界面在其相对应的显示栏上(如你的jt对象)会有默认值的,即会有一句:jt.setText(str[JCB.getSelectedIndex()]); 因为你的这个问题没得解决,都是直接默认显示JComboBox的默认值,如果是发送信息到服务器的话,你想要结果是"AAA"(及默认值)直接点击提交就行了,若是别的(“BBB"等)自己选就行了。就像你注册一个帐号时,如果用到选择框,一般都会有默认值的(如年龄一般就默认为0等)

jt.setText(JCB.getSelectedItem());
变成
jt.setText(str[JCB.getSelectedIndex()]);