?? animatedicontreeexample.java
字號(hào):
/* (swing1.1.1beta2)*/package tame.examples;import java.awt.BorderLayout;import java.awt.Image;import java.awt.Rectangle;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.awt.image.ImageObserver;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTree;import javax.swing.tree.DefaultTreeModel;import javax.swing.tree.TreeNode;import javax.swing.tree.TreePath;import tame.tree.IconNode;import tame.tree.IconNodeRenderer;/**@author Nobuo Tamemasa@version 1.0 06/20/99*/public class AnimatedIconTreeExample extends JFrame { public AnimatedIconTreeExample() { super("AnimatedIconTreeExample"); String[] strs = {"CARNIVORA", // 0 "Felidae", // 1 "Acinonyx jutatus (cheetah)", // 2 "Panthera leo (lion)", // 3 "Canidae", // 4 "Canis lupus (wolf)", // 5 "Lycaon pictus (lycaon)", // 6 "Vulpes Vulpes (fox)"}; // 7 IconNode[] nodes = new IconNode[strs.length]; for (int i=0;i<strs.length;i++) { nodes[i] = new IconNode(strs[i]); } nodes[0].add(nodes[1]); nodes[0].add(nodes[4]); nodes[1].add(nodes[2]); nodes[1].add(nodes[3]); nodes[4].add(nodes[5]); nodes[4].add(nodes[6]); nodes[4].add(nodes[7]); nodes[2].setIcon(new ImageIcon("images/3-119.gif")); nodes[3].setIcon(new ImageIcon("images/3-119.gif")); nodes[5].setIcon(new ImageIcon("images/3-6.gif")); nodes[6].setIcon(new ImageIcon("images/3-6.gif")); nodes[7].setIcon(new ImageIcon("images/3-6.gif")); JTree tree = new JTree( nodes[0] ); tree.setCellRenderer(new IconNodeRenderer()); setImageObserver(tree, nodes); JScrollPane sp = new JScrollPane(tree); getContentPane().add(sp, BorderLayout.CENTER); } private void setImageObserver(JTree tree,IconNode[] nodes) { for (int i=0;i<nodes.length;i++) { ImageIcon icon = (ImageIcon)nodes[i].getIcon(); if (icon != null) { icon.setImageObserver(new NodeImageObserver(tree, nodes[i])); } } } class NodeImageObserver implements ImageObserver { JTree tree; DefaultTreeModel model; TreeNode node; NodeImageObserver(JTree tree,TreeNode node) { this.tree = tree; this.model = (DefaultTreeModel)tree.getModel(); this.node = node; } public boolean imageUpdate(Image img, int flags, int x, int y, int w, int h) { if ((flags & (FRAMEBITS|ALLBITS)) != 0) { TreePath path = new TreePath(model.getPathToRoot(node)); Rectangle rect = tree.getPathBounds(path); if (rect != null) { tree.repaint(rect); } } return (flags & (ALLBITS|ABORT)) == 0; } } public static void main(String args[]) { AnimatedIconTreeExample frame = new AnimatedIconTreeExample(); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} }); frame.setSize(280, 200); frame.setVisible(true); }}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -