第一学期结业复习---(三)JTree

package treeone;

import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTree;
import java.awt.Rectangle;

import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.JOptionPane;
import javax.swing.ImageIcon;
import java.awt.Image;
import javax.swing.Icon;

public class Frame1 extends JFrame {
    JPanel contentPane;
    JTree jTree1;
    DefaultTreeCellRenderer tcr=new DefaultTreeCellRenderer();
    Icon icon1=new ImageIcon(new ImageIcon("pic//1.png").getImage().getScaledInstance(20,20,20));
    Icon icon2=new ImageIcon(new ImageIcon("pic//2.png").getImage().getScaledInstance(20,20,20));
    Icon icon3=new ImageIcon(new ImageIcon("pic//3.png").getImage().getScaledInstance(20,20,20));
    public Frame1() {
        try {
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }

    private void jbInit() throws Exception {
        contentPane = (JPanel) getContentPane();
        contentPane.setLayout(null);
        setSize(new Dimension(400, 300));
        setTitle("Frame Title");
        DefaultMutableTreeNode grandfather = new DefaultMutableTreeNode("爷爷");
        DefaultMutableTreeNode father = new DefaultMutableTreeNode("爸爸");
        DefaultMutableTreeNode uncle = new DefaultMutableTreeNode("叔叔");
        DefaultMutableTreeNode me = new DefaultMutableTreeNode("我");
        DefaultMutableTreeNode sister=new DefaultMutableTreeNode("妹妹");
        grandfather.add(father);
        grandfather.add(uncle);
        father.add(me);
        uncle.add(sister);
        jTree1=new JTree(grandfather);
        jTree1.setBounds(new Rectangle(65, 28, 264, 212));
        jTree1.addTreeSelectionListener(new Frame1_jTree1_treeSelectionAdapter(this));

        tcr.setOpenIcon(icon1);
        tcr.setClosedIcon(icon3);
        tcr.setLeafIcon(icon2);
        jTree1.setCellRenderer(tcr);
        contentPane.add(jTree1, null);
    }

    public void jTree1_valueChanged(TreeSelectionEvent e) {
        DefaultMutableTreeNode node=(DefaultMutableTreeNode)jTree1.getLastSelectedPathComponent();
        Object nodeInfo=node.getUserObject();//or (Object)node;
        if(nodeInfo.toString(equals("我"))
        {
            JOptionPane.showMessageDialog(this,"that's me");
        }
        else
        {
            JOptionPane.showMessageDialog(this,"that isn't me");
        }
    }
}


class Frame1_jTree1_treeSelectionAdapter implements TreeSelectionListener {
    private Frame1 adaptee;
    Frame1_jTree1_treeSelectionAdapter(Frame1 adaptee) {
        this.adaptee = adaptee;
    }

    public void valueChanged(TreeSelectionEvent e) {
        adaptee.jTree1_valueChanged(e);
    }
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值