JComboBox自动筛选

zhufenghappy 2009-06-30 04:01:31
JComboBox自动筛选问题,例如JComboBox有三项112、123、222。当输入1时则把222过滤掉,当输入12时则只显示123.
希望给出思路或简单代码,谢谢
...全文
177 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuenuanyuhan 2011-10-02
  • 打赏
  • 举报
回复
请问楼主这个问题是怎么解决的啊?我的邮箱是yu731497115@126.com,麻烦您把解决的代码,或者方法发我一下,谢谢啊
zhufenghappy 2009-07-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zuoguodang 的回复:]
楼主的泡泡堂头像不错,JComboBox是可以设置成编辑的,你就改一下吧,看行不,总不能自己一点也不想吧,这样可不好啊。
[/Quote]
你真幽默,不想能想着实现啊,试验了。“JComboBox是可以设置成编辑的”如果不能编辑我的问题还有意义吗?真是的
zuoguodang 2009-07-01
  • 打赏
  • 举报
回复
楼主的泡泡堂头像不错,JComboBox是可以设置成编辑的,你就改一下吧,看行不,总不能自己一点也不想吧,这样可不好啊。
virginkj 2009-07-01
  • 打赏
  • 举报
回复
学习一下....
zhufenghappy 2009-07-01
  • 打赏
  • 举报
回复
5楼的是不错,可是我想实现直接在JComboBox 输入,或者做个效果用JTextField实现也行啊,不能把JTextField 和JComboBox 分开,我只是想让用户只能看到JComboBox 。
zhufenghappy 2009-07-01
  • 打赏
  • 举报
回复
问题解决了,来着有分呵呵
zuoguodang 2009-06-30
  • 打赏
  • 举报
回复

import java.awt.FlowLayout;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Vector;

import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JTextField;

public class JComboBoxDemo extends JFrame {

/**
*
*/
private static final long serialVersionUID = 1L;
private JTextField jtf = null;
private JComboBox jcb = null;
private Vector<String> vdata = new Vector<String>();
private Vector<String> v2 = null;

public JComboBoxDemo() {
this.setLayout(new FlowLayout());
jtf = new JTextField(10);
jtf.addKeyListener(new MyAdapter());
this.add(jtf);
vdata.add("1");
vdata.add("32e");
vdata.add("22");
vdata.add("123");
v2 = new Vector<String>(vdata);
jcb = new JComboBox(vdata);
jcb.setSelectedIndex(0);
jcb.setEditable(true);

this.add(jcb);
this.setTitle("Demo");
this.setSize(600, 450);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new JComboBoxDemo();
}

class MyAdapter implements KeyListener {


@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub

}

@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub

String value = JComboBoxDemo.this.jtf.getText().trim();
JComboBoxDemo.this.jcb.removeAllItems();
for (String item : JComboBoxDemo.this.v2) {
if (item.startsWith(value)) {
JComboBoxDemo.this.jcb.addItem(item);
}
}
JComboBoxDemo.this.jcb.validate();
}

@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub

}

}

}


好长时间不写swing了,仅供参考
zoutuo 2009-06-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xiaoduan5267 的回复:]
楼上说的可以,这就是自动完成功能啊。
但不明白楼主在什么地方输入的,JComboBox可以输入码?????
[/Quote]
呵呵,该说的都被说啦。楼主要是行行好就给我几个分吧,谢谢了、
Miracle1216 2009-06-30
  • 打赏
  • 举报
回复
楼上说的可以,这就是自动完成功能啊。
但不明白楼主在什么地方输入的,JComboBox可以输入码?????
zuijiejina 2009-06-30
  • 打赏
  • 举报
回复
恩,过去输入的数字后,用String的startsWith方法来作为判断,然后用1楼的方法,用一个list来存放要的内容。
laorer 2009-06-30
  • 打赏
  • 举报
回复
.. keyPress 事件中 获取 comboBox 的 text ,然后轮循 里面的内容是不是以 12开始的, 是就放到一个 list 中,不是则不管,然后再把这个 comboBox item 重新设 为 list

62,634

社区成员

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

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