近日完成了一个较复杂的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(); init(); } public void