Topic: 关于JComboBox的问题?

  Print this page

1.关于JComboBox的问题? Copy to clipboard
Posted by: wxianbao
Posted on: 2003-04-26 14:31

如何在JComboBox中输入一个字符串之后按回车键,使得JComboBox 的编辑框中的字符串送到一个变量,即JComboBox如和响应键盘事件?

谢谢拉,在线等待。。。

2.Re:关于JComboBox的问题? [Re: wxianbao] Copy to clipboard
Posted by: ibrier
Posted on: 2003-04-26 15:04

看看这样....
JComboBox ctrlTest;
String text;

ctrlTest=new JComboBox();
ctrlTest.setEditor(new BasicComboBoxEditor());
ctrlTest.setEditable(true);
ctrlTest.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
text=(String)cbTest.getEditor().getItem();
}
});

3.Re:关于JComboBox的问题? [Re: wxianbao] Copy to clipboard
Posted by: wxianbao
Posted on: 2003-04-26 15:13

我必须要按回车键来触发事件的
上面说的好象不能实现这样的功能吧

4.Re:关于JComboBox的问题? [Re: wxianbao] Copy to clipboard
Posted by: ibrier
Posted on: 2003-04-26 15:43

对了,这样只需要改变内容就会发生,
那可以这样该动,我试了一下,应该可以。
//定义BasicComboBoxEditor
JTextField tfText;

BasicComboBoxEditor editor=new BasicComboBoxEditor();
editor.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
tfText.setText((String)cbTest.getEditor().getItem());
}
});
再把这个editor给JComboBox就可以了。

5.Re:关于JComboBox的问题? [Re: wxianbao] Copy to clipboard
Posted by: wxianbao
Posted on: 2003-04-26 16:06

用KeyListener不行吗?如下:
KeyListener kLComboSearch = new KeyListener(){
public void keyPressed(KeyEvent e) {
   if (e.getKeyCode() == KeyEvent.VK_ENTER) {
     String nodeName = comboSearch.getText();
   searchNode(nodeName);//调用一个函数
   }
  }
  public void keyReleased(KeyEvent e){}
  public void keyTyped(KeyEvent e){}
        
};

6.Re:关于JComboBox的问题? [Re: wxianbao] Copy to clipboard
Posted by: ibrier
Posted on: 2003-04-26 16:14

我的理解是:KeyListener是针对JComboBox的,
而你需要的是针对它的编辑器的。

7.Re:关于JComboBox的问题? [Re: wxianbao] Copy to clipboard
Posted by: wxianbao
Posted on: 2003-04-26 17:15

我是要按下回车键的效果啊

8.Re:关于JComboBox的问题? [Re: wxianbao] Copy to clipboard
Posted by: yakuu
Posted on: 2003-04-27 14:54

add your code like this:

final JComboBox cmb = new JComboBox();
cmb.setEditable(true);
cmb.getEditor().getEditorComponent().addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent evt) {
Object obj = evt.getSource();

if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
if (cmb.isEditable()) {
// add your code here.
System.out.println("Enter Key pressed");
}
}
}
});

9.Re:关于JComboBox的问题? [Re: wxianbao] Copy to clipboard
Posted by: jiangns3000
Posted on: 2003-04-27 16:27

其实前面 ibrier给的代码已是行了。只要设置JComboBox为可编辑。


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923