具体实现代码如下: public class JTreeComboBox extends JComboBox{ /** * 显示用的树 */ private JTree tree; public JTreeComboBox(){ this(new JTree()); } public JTreeComboBox(JTree tree){ this.setTree(tree); } /** * 设置树 * @param tree JTree */ public void setTree(JTree tree){ this.tree = tree; if(tree != null){ this.setSelectedItem(tree.getSelectionPath()); this.setRenderer(new JTreeComboBoxRenderer()); } this.updateUI(); } /** * 取得树 * @return JTree */ public JTree getTree(){ return tree; } /** * 设置当前选择的树路径 * @param o Object */ public void setSelectedItem(Object o){ tree.setSelectionPath((TreePath)o); getModel().setSelectedItem(o); } public void updateUI(){ ComboBoxUI cui = (ComboBoxUI)UIManager.getUI(this); if(cui instanceof MetalComboBoxUI){ cui = new MetalJTreeComboBoxUI(); } else if(cui instanceof MotifComboBoxUI){ cui = new MotifJTreeComboBoxUI(); } else { cui = new WindowsJTreeComboBoxUI(); } setUI(cui); } // UI Inner classes -- one for each supported Look and Feel class MetalJTreeComboBoxUI extends MetalComboBoxUI{ protected ComboPopup createPopup(){ return new TreePopup(comboBox); } } class WindowsJTree