关于JComboBox的事件触发的问题;来者必有分!!!

cccer 2004-12-25 09:02:36
下面是源代码
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class ComboBoxTest extends JFrame{
private JLabel sqlLabel = new JLabel("SQL:");
private JComboBox sqlComboBox = new JComboBox();
public ComboBoxTest() {
sqlComboBox.setEditable(true);
sqlComboBox.addItem("");
sqlComboBox.setBackground(Color.WHITE);
sqlComboBox.setPreferredSize(new Dimension(500,25));
sqlComboBox.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent event) {
if (event.getStateChange() == ItemEvent.SELECTED){
if(sqlComboBox.getSelectedIndex()==-1){
String currentSQL=(String)event.getItem();
System.out.println("currentSQL : "+currentSQL);
sqlComboBox.addItem(currentSQL);
}
}
}
});

Container cp=getContentPane();
cp.setLayout(new FlowLayout());
cp.add(sqlLabel);
cp.add(sqlComboBox);
pack();
setVisible(true);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) {
System.exit(0);
}
});
}

public static void main(String[] args){
new ComboBoxTest();
}
}

我得意图是让用户在JComboBox里写sql语句,当用户按回车时发送sql语句,并且把发送过的sql语句
用addItem()添加到JComboBox里,但是现在有一个问题:
当我连续敲击一次以上的回车时,为什么只能触发一次itemStateChanged,(我希望用户每次按回车都能触发一次itemStateChanged)
还有当选择了JComboBox里的被记录的sql后,再按回车却无法触发itemStateChanged;
谁能帮我解决这个问题
...全文
229 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mistysunlight 2005-08-03
  • 打赏
  • 举报
回复
问题怎么解决的??
怎么没有说啊!!??
asert 2005-04-24
  • 打赏
  • 举报
回复
我们QQ上聊
华生豆 2004-12-27
  • 打赏
  • 举报
回复
itemStateChanged这个事件只有选择的内容变化时才会触发,我觉得你可以把这个处理过程单独写成一个函数,在选择时调用这个函数,然后回车时也调用这个函数就可以了~~~
射天狼 2004-12-27
  • 打赏
  • 举报
回复
如果你内容没有更改,只是敲回车的话,是不会触发CHANGE事件的!!
ccwg 2004-12-27
  • 打赏
  • 举报
回复
up
cccer 2004-12-25
  • 打赏
  • 举报
回复
快来帮帮我阿
cccer 2004-12-25
  • 打赏
  • 举报
回复
up
cccer 2004-12-25
  • 打赏
  • 举报
回复
你既然进来了,就帮我想一想啊!
kaymo 2004-12-25
  • 打赏
  • 举报
回复
sofa~! ^^

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧