请问如何将树(JTree)的节点设置成不同的图标?100分献上! 呵呵。用jb工具就可以阿。对了,你用那些工具啊?看一下images图标。你应该知道了吧?就像javabean一样,我们可以随便选择自己喜欢的图标阿。不知道你清楚了吗?而且几乎不用代码阿快加分阿。呵呵! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我用visual Age for java,不过我要在程序中控制呀,不能要工具生成的呀。你能否把用jb生成的代码给我贴一点,:)一定给分!! 用自制的图标和字体来显示一个树。import javax.swing.*;import javax.swing.tree.*;import java.awt.*;public class Mytree3 extends JApplet{ public void init() {Container con=getContentPane(); DefaultMutableTreeNode root=new DefaultMutableTreeNode("c:\\");//树的根节点。 DefaultMutableTreeNode t1=new DefaultMutableTreeNode("dos");//节点。 DefaultMutableTreeNode t2=new DefaultMutableTreeNode("java");//节点。 DefaultMutableTreeNode t1_1=new DefaultMutableTreeNode("wps"); DefaultMutableTreeNode t1_2=new DefaultMutableTreeNode("epg"); DefaultMutableTreeNode t2_1=new DefaultMutableTreeNode("applet"); DefaultMutableTreeNode t2_2=new DefaultMutableTreeNode("jre"); root.add(t1);root.add(t2); t1.add(t1_1);t1.add(t1_2); t2.add(t2_1);t2.add(t2_2); JTree tree =new JTree(root); //创建根为root的树。 DefaultTreeCellRenderer render=new DefaultTreeCellRenderer(); render.setLeafIcon(new ImageIcon("leaf.gif")); render.setBackground(Color.yellow); render.setClosedIcon(new ImageIcon("close.gif")); render.setOpenIcon(new ImageIcon("open.gif")); render.setTextSelectionColor(Color.red); render.setTextNonSelectionColor(Color.green); render.setFont(new Font("TimeRoman",Font.BOLD,16)); tree.setCellRenderer(render); JScrollPane scrollpane=new JScrollPane(tree); con.add(scrollpane); }} 大体也就如 qxjavajava(射手座 =---> 你今天JAVA了吗) 所写的了你可以看看DefaultTreeCellRenderer的源代码,va中可以看到的.你说想使每个节点图标不一样,可以呀,方法太多了.但归根到底还是要对CellRender做文章. 看到你我感到很郁闷,在DefaultTreeCellRenderer和DefaultTreeCellEditor上想想办法吧,大家都很忙啊大哥 我给你做了个例子呵呵很简单不过吗分拿来import javax.swing.*;import javax.swing.border.Border;import javax.swing.border.EmptyBorder;import javax.swing.tree.TreeModel;import javax.swing.tree.DefaultTreeModel;import javax.swing.tree.DefaultMutableTreeNode;import javax.swing.tree.DefaultTreeCellRenderer;import java.awt.*;public class TreeImage extends JFrame { DefaultTreeModel model; JTree tree; public TreeImage() { super(""); setSize(300, 200); model = createModel(); tree = new JTree(model); tree.setCellRenderer(new MyTree()); JScrollPane jsp = new JScrollPane(tree); getContentPane().add(jsp, BorderLayout.CENTER); setVisible(true); } public DefaultTreeModel createModel() { DefaultMutableTreeNode root = new DefaultMutableTreeNode("a"); DefaultMutableTreeNode b = new DefaultMutableTreeNode("b"); DefaultMutableTreeNode c = new DefaultMutableTreeNode("c"); root.add(b); root.add(c); return new DefaultTreeModel(root); } public static void main(String args[]) { TreeImage ti = new TreeImage(); }}class MyTree extends DefaultTreeCellRenderer { Border border = new EmptyBorder(1, 1, 1, 1); public MyTree() { setOpaque(true); setBorder(border); } public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) { super.getTreeCellRendererComponent(tree,value,sel,expanded,leaf,row,hasFocus); setText(value.toString()); if (sel) setForeground(getTextSelectionColor()); else setForeground(getTextNonSelectionColor()); DefaultMutableTreeNode node = (DefaultMutableTreeNode) value; String str = value.toString(); if (str == "a") { this.setIcon(new ImageIcon("Add.gif")); } if (str == "b") { this.setIcon(new ImageIcon("Copy.gif")); } if (str == "c") { this.setIcon(new ImageIcon("Delete.gif")); } return this; }} 其他不要跟我抢分了不然我要杀人啦HOHOHOO~!~ 我有点明白了,就是覆盖Model中的getTreeCellRendererComponent方法,在这个方法中做一些文章,对吗? 遇到一个异常请高手帮忙分析一下 这个异常秒杀了我公司3名技术 菜鸟救助老鸟!将下段C#代码翻译成java代码 请教:线程问题 java 开发----如何把一个SQl result 结果集 输出成.csv 文件?? 对于一个想找Java工作的新手来说有哪些要求吖? 显示竟然还是没有 图形(矩形) 只有画布 有谁能帮我 问一个很小的问题。。 怎么用compareTo()方法排序 java与php的区别 JList的低级问题 新学JAVA做了个 QQ ,请大侠测试,给出建议或buf或修改意见的给源码,--UP有分
你能否把用jb生成的代码给我贴一点,:)
一定给分!!
import java.awt.*;
public class Mytree3 extends JApplet
{ public void init()
{Container con=getContentPane();
DefaultMutableTreeNode root=new DefaultMutableTreeNode("c:\\");//树的根节点。
DefaultMutableTreeNode t1=new DefaultMutableTreeNode("dos");//节点。
DefaultMutableTreeNode t2=new DefaultMutableTreeNode("java");//节点。
DefaultMutableTreeNode t1_1=new DefaultMutableTreeNode("wps");
DefaultMutableTreeNode t1_2=new DefaultMutableTreeNode("epg");
DefaultMutableTreeNode t2_1=new DefaultMutableTreeNode("applet");
DefaultMutableTreeNode t2_2=new DefaultMutableTreeNode("jre");
root.add(t1);root.add(t2);
t1.add(t1_1);t1.add(t1_2);
t2.add(t2_1);t2.add(t2_2);
JTree tree =new JTree(root); //创建根为root的树。
DefaultTreeCellRenderer render=new DefaultTreeCellRenderer();
render.setLeafIcon(new ImageIcon("leaf.gif"));
render.setBackground(Color.yellow);
render.setClosedIcon(new ImageIcon("close.gif"));
render.setOpenIcon(new ImageIcon("open.gif"));
render.setTextSelectionColor(Color.red);
render.setTextNonSelectionColor(Color.green);
render.setFont(new Font("TimeRoman",Font.BOLD,16));
tree.setCellRenderer(render);
JScrollPane scrollpane=new JScrollPane(tree);
con.add(scrollpane);
}
}
你可以看看DefaultTreeCellRenderer的源代码,va中可以看到的.
你说想使每个节点图标不一样,可以呀,方法太多了.
但归根到底还是要对CellRender做文章.
呵呵很简单
不过吗分拿来
import javax.swing.*;
import javax.swing.border.Border;
import javax.swing.border.EmptyBorder;
import javax.swing.tree.TreeModel;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeCellRenderer;
import java.awt.*;public class TreeImage extends JFrame {
DefaultTreeModel model;
JTree tree; public TreeImage() {
super("");
setSize(300, 200);
model = createModel();
tree = new JTree(model);
tree.setCellRenderer(new MyTree());
JScrollPane jsp = new JScrollPane(tree);
getContentPane().add(jsp, BorderLayout.CENTER);
setVisible(true);
} public DefaultTreeModel createModel() {
DefaultMutableTreeNode root = new DefaultMutableTreeNode("a");
DefaultMutableTreeNode b = new DefaultMutableTreeNode("b");
DefaultMutableTreeNode c = new DefaultMutableTreeNode("c");
root.add(b);
root.add(c);
return new DefaultTreeModel(root);
} public static void main(String args[]) {
TreeImage ti = new TreeImage();
}
}class MyTree extends DefaultTreeCellRenderer {
Border border = new EmptyBorder(1, 1, 1, 1); public MyTree() {
setOpaque(true);
setBorder(border);
} public Component getTreeCellRendererComponent(JTree tree, Object value,
boolean sel,
boolean expanded,
boolean leaf, int row,
boolean hasFocus) { super.getTreeCellRendererComponent(tree,value,sel,expanded,leaf,row,hasFocus); setText(value.toString());
if (sel)
setForeground(getTextSelectionColor());
else
setForeground(getTextNonSelectionColor());
DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;
String str = value.toString();
if (str == "a") {
this.setIcon(new ImageIcon("Add.gif"));
}
if (str == "b") {
this.setIcon(new ImageIcon("Copy.gif"));
}
if (str == "c") {
this.setIcon(new ImageIcon("Delete.gif"));
}
return this;
}
}
不然我要杀人啦
HOHOHOO~!~