在程序中,我的jcombobox是可编辑的
现在我想监听jcombobox中的输入(通过键盘输入),然后根据输入对jcombobox的下拉列表中
的数据进行排序。
请问如何实现??????多谢!
主要是不知道应该用哪个事件才能监听jcombobox中的输入
现在我想监听jcombobox中的输入(通过键盘输入),然后根据输入对jcombobox的下拉列表中
的数据进行排序。
请问如何实现??????多谢!
主要是不知道应该用哪个事件才能监听jcombobox中的输入
解决方案 »
- JAVA小问题
- Jave基础学习:jdbc小技巧
- 用 Jcreator的話 會出現這個訊息
- 关于jsp处理sql server里面的null值
- 怎样把excel导出的html格式文件转换为xls格式文件呢
- 感谢J2SE的朋友们
- 如何设置字体大小?精确到小数点后一位!
- 请教一个小问题,请各位高手赐教
- 使用JDBC, 插入多个数据时出现错误:“不能再打开其他表了”
- applet class中的getAppletContext()和getAccessibleContext()都是干什么的?有什么用?
- 我的线程为什么不能同步,我是按书上打的呀.谢谢大家了.
- [紧急求助] 一个关于L&F(LookAndFeel)的问题……
如果在jcombobox的下拉列表展开的情况下,如何根据键盘输入,对jcombobox的下拉列表进行动态排序??????????
很急啊!!!!
多谢各位xdjm
2。在你构造的类中,定义PropertyChangeSupport的对象
PropertyChangeSupport pcs = new PropertyChangeSupport();
3。覆盖掉JComboBox的addItem(Object obj)方法,在方法内调用激发器
public void addItem(Object obj) {
super.addItem() Object tempObj = this.obj;
this.obj = obj; if (this.obj == obj) {
return;
}
PropertyChangeListener[] ls = propertyChangeSupport.getPropertyChangeListeners();
if ( ( ls == null ) || ( ls.length <= 0 ) ) {
return;
}
propertyChangeSupport.firePropertyChange("obj",tempObj,obj);
}4。在定义你构造的类的对象后,为此对象加载PropertyChangelistener这样在你每次进行输入后确认的时候,肯定会调用addItem(Object obj)方法(已经被覆盖的)。这样就可以激发PropertyChangeListener了明白了?ps:上面的代码没有上机测试,不敢保证准确,楼下的指正,不胜感激
现在用户的要求如下:用户可以在jcombobox中输入几个字符,然后程序自动把jcombobox的下拉列表框中的item根据用户的输入按相似度排序,以便用户可以较快找到需要的item
楼上的程序好像并不能解决这个问题,xdjm们帮帮我啊!
1。你的Combobox中的Item应当包含一个JTextArea
2。在这个JTextArea中按照我上面的方法加在propertyChange监听,覆盖setText方法
(不知道在JTextArea上加载ActionListener是否可以捕获到事件源,不妨一试)
3。在监听器的事件处理方法中,对Jcombobox中的Item进行重排(重排的算法根据客户要求),利用setComponent()进行重绘大概就是这个意思,抛砖引玉