近日完成了一个较复杂的JTree结构,并提供搜索功能,想着在搜索时再加个智能匹配的功能应该能提高用户体验,于是先完成了这个示例 ,效果就不贴图了,就是类似google的suggest那样的智能匹配功能,代码如下
package
swingdemo;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.HashSet;
import java.util.Set;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
import javax.swing.ListSelectionModel;
public class IntelligentMatch extends JFrame ... {
private JTextField keywordField;
private JPopupMenu popupMenu;
private JList cacheKeywordList;
private Set<String> cacheKeyword = new HashSet<String>();
private Set<String> matchResultSet = new HashSet<String>();
private ResultListModel resultListModel;
private ListListener listListener = new ListListener();
public IntelligentMatch()...{
super();
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.HashSet;
import java.util.Set;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
import javax.swing.ListSelectionModel;
public class IntelligentMatch extends JFrame ... {
private JTextField keywordField;
private JPopupMenu popupMenu;
private JList cacheKeywordList;
private Set<String> cacheKeyword = new HashSet<String>();
private Set<String> matchResultSet = new HashSet<String>();
private ResultListModel resultListModel;
private ListListener listListener = new ListListener();
public IntelligentMatch()...{
super();