搜索了一下,发现解决方案只有通过修改叶节点的renderer比较大的问题就是只要选择了叶节点,不管是checkbox还是后面的文字都会选择该节点Eclipse里导出文件到Jar向导里选择包的树型目录是怎么做的?大家探讨下可行的思路吧尽快结贴

解决方案 »

  1.   

    原理就是自己实现CellTreeRender,下面是实际的代码。// JTreeTest.java
    import java.awt.BorderLayout;
    import javax.swing.JFrame;
    import javax.swing.JTree;public class JTreeTest extends JFrame { private JTree tree; /**
     * Launch the application
     * 
     * @param args
     */
    public static void main(String args[]) {
    try {
    JTreeTest frame = new JTreeTest();
    frame.setVisible(true);
    } catch (Exception e) {
    e.printStackTrace();
    }
    } /**
     * Create the frame
     */
    public JTreeTest() {
    super();
    setBounds(100, 100, 500, 375);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); tree = new JTree();
    getContentPane().add(tree, BorderLayout.CENTER);
    tree.setCellRenderer(new CheckboxTreeRender());
    //
    }}//CheckboxTreeRender.java
    import java.awt.Component;import javax.swing.JCheckBox;
    import javax.swing.JTree;
    import javax.swing.tree.DefaultTreeCellRenderer;public class CheckboxTreeRender extends DefaultTreeCellRenderer { @Override
    public Component getTreeCellRendererComponent(JTree tree, Object value,
    boolean sel, boolean expanded, boolean leaf, int row,
    boolean hasFocus) {
    JCheckBox box = new JCheckBox();
    box.setText(value.toString());
    box.setSelected(sel);
    return box;
    }}