在程序中,我的jcombobox是可编辑的
现在我想监听jcombobox中的输入(通过键盘输入),然后根据输入对jcombobox的下拉列表中
的数据进行排序。
请问如何实现??????多谢!
主要是不知道应该用哪个事件才能监听jcombobox中的输入
现在我想监听jcombobox中的输入(通过键盘输入),然后根据输入对jcombobox的下拉列表中
的数据进行排序。
请问如何实现??????多谢!
主要是不知道应该用哪个事件才能监听jcombobox中的输入
如果在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()进行重绘大概就是这个意思,抛砖引玉