我现在写的程序有些问题,请帮我看看,怎么解决super("即时通信"); // 调用父类构造函数
DefaultMutableTreeNode root = new DefaultMutableTreeNode("企业通信"); // 生成根节点
DefaultMutableTreeNode node1 = new DefaultMutableTreeNode("自己"); //
DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("我的好友"); //
root.add(node1); // 增加节点一到根节点上
root.add(node2);
node1.add(new DefaultMutableTreeNode("乔治.巴顿"));
node2.add(new DefaultMutableTreeNode("巴乔"));
// node2.add(new DefaultMutableTreeNode(""));
node2.add(new DefaultMutableTreeNode("温柔一刀"));
JTree tree = new JTree(root); // 得到JTree的实例
DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer) tree
.getCellRenderer(); // 得到JTree的Renderer
ImageIcon ii;
ImageIcon ii1;
ImageIcon ii2;
ii = new ImageIcon("e:/images/open.png");
ii1 = new ImageIcon("e:/images/close.png");
ii2 = new ImageIcon("e:/images/1.gif");
renderer.setLeafIcon(ii2); // 设置叶子节点图标为空
renderer.setClosedIcon(ii1); // 设置关闭节点的图标为空
renderer.setOpenIcon(ii); // 设置打开节点的图标为空
tree.setRootVisible(false);
tree.putClientProperty("JTree.lineStyle", "None");
tree.setRowHeight(ii2.getIconHeight() + 6);
请看红色代码部分,如果不除掉这段代码,运行效果见中间图片;但是根目录(“自己”,“我的好友”)这2个目录间隙太大了。我希望这2个目录尽量靠拢,像最左边那样。
如果除掉红色部分
运行效果就是第一个样式,我的2个好友之间的头像没有任何间隙了,我希望,头像之间有一些间隙。
总之
我希望,运行效果类似qq一样,我的好友头像之间需要有间隙,但是,目录之间间隙尽量小一点,不知道怎么做哦?
DefaultMutableTreeNode root = new DefaultMutableTreeNode("企业通信"); // 生成根节点
DefaultMutableTreeNode node1 = new DefaultMutableTreeNode("自己"); //
DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("我的好友"); //
root.add(node1); // 增加节点一到根节点上
root.add(node2);
node1.add(new DefaultMutableTreeNode("乔治.巴顿"));
node2.add(new DefaultMutableTreeNode("巴乔"));
// node2.add(new DefaultMutableTreeNode(""));
node2.add(new DefaultMutableTreeNode("温柔一刀"));
JTree tree = new JTree(root); // 得到JTree的实例
DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer) tree
.getCellRenderer(); // 得到JTree的Renderer
ImageIcon ii;
ImageIcon ii1;
ImageIcon ii2;
ii = new ImageIcon("e:/images/open.png");
ii1 = new ImageIcon("e:/images/close.png");
ii2 = new ImageIcon("e:/images/1.gif");
renderer.setLeafIcon(ii2); // 设置叶子节点图标为空
renderer.setClosedIcon(ii1); // 设置关闭节点的图标为空
renderer.setOpenIcon(ii); // 设置打开节点的图标为空
tree.setRootVisible(false);
tree.putClientProperty("JTree.lineStyle", "None");
tree.setRowHeight(ii2.getIconHeight() + 6);
请看红色代码部分,如果不除掉这段代码,运行效果见中间图片;但是根目录(“自己”,“我的好友”)这2个目录间隙太大了。我希望这2个目录尽量靠拢,像最左边那样。
如果除掉红色部分
运行效果就是第一个样式,我的2个好友之间的头像没有任何间隙了,我希望,头像之间有一些间隙。
总之
我希望,运行效果类似qq一样,我的好友头像之间需要有间隙,但是,目录之间间隙尽量小一点,不知道怎么做哦?
没做过java这方面的东西
import javax.swing.tree.*;
import java.awt.*;public class TreeTest {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(800, 600);
DefaultMutableTreeNode root = new DefaultMutableTreeNode("企业通信");
DefaultMutableTreeNode group1 = new DefaultMutableTreeNode("自己");
DefaultMutableTreeNode group2 = new DefaultMutableTreeNode("我的好友");
DefaultMutableTreeNode person1 = new DefaultMutableTreeNode("乔治.巴顿");
DefaultMutableTreeNode person2 = new DefaultMutableTreeNode("温柔一刀");
root.add(group1);
root.add(group2);
group2.add(person1);
group2.add(person2);
JTree tree = new JTree(root);
tree.setRootVisible(false);
tree.setCellRenderer(new MyTreeCellRenderer());
frame.add(tree);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}class MyTreeCellRenderer extends DefaultTreeCellRenderer {
@Override
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected,
boolean expanded, boolean leaf, int row, boolean hasFocus) {
if (value instanceof DefaultMutableTreeNode) {
setPreferredSize(new Dimension(100, ((DefaultMutableTreeNode)value).getLevel() == 1 ? 20 : 50));
}
return super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
}
}
我从http://www.randelshofer.ch/quaqua/ 这里下载了一个东西的