如何设置jtree 图标 jtree 中如何修改 java自身的那个 像钥匙 一样的 小图标啊 就是 节点图片 前面的那个小图标 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import java.awt.*; import java.awt.image.BufferedImage; import java.io.*; import javax.imageio.ImageIO; import javax.swing.*; import javax.swing.tree.*; public class TreeIcons { BufferedImage[] images; public TreeIcons(BufferedImage[] images) { this.images = images; } private JPanel getContent() { JPanel panel = new JPanel(new GridLayout(1,0)); panel.add(new JScrollPane(getLeftTree())); panel.add(new JScrollPane(getRightTree())); return panel; } private JTree getLeftTree() { JTree tree = getTree(); DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer)tree.getCellRenderer(); // make changes to renderer for this tree // works okay if the size of the new images does // not exceed the size of the default images renderer.setClosedIcon(new ImageIcon(images[0])); renderer.setOpenIcon(new ImageIcon(images[1])); renderer.setLeafIcon(new ImageIcon(images[2])); return tree; } private JTree getRightTree() { JTree tree = getTree(); // set a renderer that allows more fine-grained // control of rendering for varying conditions tree.setCellRenderer(new IconRenderer(images)); return tree; } private JTree getTree() { String[] birds = { // branches |<-- child leaf nodes -->| "hawks", "gray", "red-tailed", "rough-legged", "falcons", "harrier", "kestrel", "kite", "owls", "barred", "saw-whet", "snowy" }; DefaultMutableTreeNode root = new DefaultMutableTreeNode("birds"); DefaultMutableTreeNode[] nodes = new DefaultMutableTreeNode[birds.length]; for(int j = 0; j < nodes.length; j++) nodes[j] = new DefaultMutableTreeNode(birds[j]); for(int j = 0; j < 9; j += 4) { root.insert(nodes[j], j % 3); for(int k = j + 1; k < j + 4; k++) nodes[j].insert(nodes[k], k - j - 1); } DefaultTreeModel model = new DefaultTreeModel(root); return new JTree(model); } public static void main(String[] args) throws IOException { String[] ids = { "closed16", "open16", "leaf16" }; BufferedImage[] bis = new BufferedImage[ids.length]; for(int j = 0; j < bis.length; j++) bis[j] = ImageIO.read(new File("images/" + ids[j] + ".gif")); // to make uniform changes for all JTrees in this app //UIManager.put("Tree.closedIcon", new ImageIcon(bis[0])); //UIManager.put("Tree.openIcon", new ImageIcon(bis[1])); //UIManager.put("Tree.leafIcon", new ImageIcon(bis[2])); JFrame f = new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setContentPane(new TreeIcons(bis).getContent()); f.setSize(500,400); f.setLocation(200,200); f.setVisible(true); } } class IconRenderer extends DefaultTreeCellRenderer { ImageIcon closedIcon; ImageIcon openIcon; ImageIcon leafIcon; public IconRenderer(BufferedImage[] images) { closedIcon = new ImageIcon(images[0]); openIcon = new ImageIcon(images[1]); leafIcon = new ImageIcon(images[2]); } public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) { // start with default behavior super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus); // customize based on local conditions/state DefaultMutableTreeNode node = (DefaultMutableTreeNode)value; String userObject = (String)node.getUserObject(); boolean isOwl = userObject.equalsIgnoreCase("owls"); if(isOwl) setIcon(closedIcon); else if(leaf) setIcon(leafIcon); else if(expanded) setIcon(openIcon); return this; } } 设置一个自定义的TreeCellRenderer对象就行了,一般是扩展DefaultTreeCellRenderer 求助java.sql.SQLException io流.得到文件路径中文乱码问题 java关于四舍五入 我想看java技术的英文类图书?大家有什么好的推荐 请教剪贴板的一个问题,怎么复制图片 .class文件问题,不懂,求教! 有朋友过这个网站吗?http://www.ttjj.com/index.php 我发现它的技术还真是不错!! *** 高分, 请问如何发送一个事件, 比如发送一个Tab键? *** 急!!用JAVA编的按钮能不能触发事件! 请问insets的问题 帮我看个小程序。。Java UDP连接问题 各位高手进来帮忙看看这个程序问题在哪?
import java.awt.image.BufferedImage;
import java.io.*;
import javax.imageio.ImageIO;
import javax.swing.*;
import javax.swing.tree.*; public class TreeIcons
{
BufferedImage[] images; public TreeIcons(BufferedImage[] images)
{
this.images = images;
} private JPanel getContent()
{
JPanel panel = new JPanel(new GridLayout(1,0));
panel.add(new JScrollPane(getLeftTree()));
panel.add(new JScrollPane(getRightTree()));
return panel;
} private JTree getLeftTree()
{
JTree tree = getTree();
DefaultTreeCellRenderer renderer =
(DefaultTreeCellRenderer)tree.getCellRenderer();
// make changes to renderer for this tree
// works okay if the size of the new images does
// not exceed the size of the default images
renderer.setClosedIcon(new ImageIcon(images[0]));
renderer.setOpenIcon(new ImageIcon(images[1]));
renderer.setLeafIcon(new ImageIcon(images[2]));
return tree;
} private JTree getRightTree()
{
JTree tree = getTree();
// set a renderer that allows more fine-grained
// control of rendering for varying conditions
tree.setCellRenderer(new IconRenderer(images));
return tree;
} private JTree getTree()
{
String[] birds = {
// branches |<-- child leaf nodes -->|
"hawks", "gray", "red-tailed", "rough-legged",
"falcons", "harrier", "kestrel", "kite",
"owls", "barred", "saw-whet", "snowy"
};
DefaultMutableTreeNode root = new DefaultMutableTreeNode("birds");
DefaultMutableTreeNode[] nodes = new DefaultMutableTreeNode[birds.length];
for(int j = 0; j < nodes.length; j++)
nodes[j] = new DefaultMutableTreeNode(birds[j]);
for(int j = 0; j < 9; j += 4)
{
root.insert(nodes[j], j % 3);
for(int k = j + 1; k < j + 4; k++)
nodes[j].insert(nodes[k], k - j - 1);
}
DefaultTreeModel model = new DefaultTreeModel(root);
return new JTree(model);
} public static void main(String[] args) throws IOException
{
String[] ids = { "closed16", "open16", "leaf16" };
BufferedImage[] bis = new BufferedImage[ids.length];
for(int j = 0; j < bis.length; j++)
bis[j] = ImageIO.read(new File("images/" + ids[j] + ".gif"));
// to make uniform changes for all JTrees in this app
//UIManager.put("Tree.closedIcon", new ImageIcon(bis[0]));
//UIManager.put("Tree.openIcon", new ImageIcon(bis[1]));
//UIManager.put("Tree.leafIcon", new ImageIcon(bis[2]));
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setContentPane(new TreeIcons(bis).getContent());
f.setSize(500,400);
f.setLocation(200,200);
f.setVisible(true);
}
} class IconRenderer extends DefaultTreeCellRenderer
{
ImageIcon closedIcon;
ImageIcon openIcon;
ImageIcon leafIcon; public IconRenderer(BufferedImage[] images)
{
closedIcon = new ImageIcon(images[0]);
openIcon = new ImageIcon(images[1]);
leafIcon = new ImageIcon(images[2]);
} public Component getTreeCellRendererComponent(JTree tree,
Object value,
boolean sel,
boolean expanded,
boolean leaf,
int row,
boolean hasFocus)
{
// start with default behavior
super.getTreeCellRendererComponent(tree, value, sel, expanded,
leaf, row, hasFocus); // customize based on local conditions/state
DefaultMutableTreeNode node = (DefaultMutableTreeNode)value;
String userObject = (String)node.getUserObject();
boolean isOwl = userObject.equalsIgnoreCase("owls");
if(isOwl)
setIcon(closedIcon);
else if(leaf)
setIcon(leafIcon);
else if(expanded)
setIcon(openIcon);
return this;
}
}