如何实现加checkbox的JTree显示?就象Eclipse里导出文件到Jar向导里选择包的树型目录

fadestarfish 2006-02-10 02:15:51
搜索了一下,发现解决方案只有通过修改叶节点的renderer

比较大的问题就是只要选择了叶节点,不管是checkbox还是后面的文字都会选择该节点

Eclipse里导出文件到Jar向导里选择包的树型目录是怎么做的?

大家探讨下可行的思路吧

尽快结贴
...全文
93 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
bovy 2006-02-12
  • 打赏
  • 举报
回复
原理就是自己实现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;
}

}

62,626

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧