⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mytreebean.java

📁 通讯录设计说明 各模块说明 myHeaderBean: 开头动画
💻 JAVA
字号:
package Communication;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.tree.*;
import java.awt.*;
import java.awt.event.*;
public class myTreeBean extends JPanel
{
	Icon icon;
	JLabel na=new JLabel("姓名:",SwingConstants.CENTER);
	JLabel ad=new JLabel("联系住址:",SwingConstants.CENTER);
	JLabel ph=new JLabel("电话号码:",SwingConstants.CENTER);
	JLabel mp=new JLabel("手机号码:",SwingConstants.CENTER);
	JLabel qq=new JLabel("QQ号:",SwingConstants.CENTER);
	JLabel em=new JLabel("Email",SwingConstants.CENTER);
	JLabel se=new JLabel("性别:",SwingConstants.CENTER);
	
	JLabel name=new JLabel();
	JLabel address=new JLabel();
	JLabel phone=new JLabel();
	JLabel mobilephone=new JLabel();
	JLabel QQ=new JLabel();
	JLabel email=new JLabel();
	JLabel SEX =new JLabel();
	
	JTree mytree;
	DefaultMutableTreeNode dmtn[]=new DefaultMutableTreeNode[1000];
	DefaultMutableTreeNode root;
	DefaultMutableTreeNode root1;//我的同学
	DefaultMutableTreeNode root2;//我的朋友
	DefaultMutableTreeNode root3;//我的家人
	DefaultTreeModel model;
	JPanel contentp=new JPanel();
	JPanel p1=new JPanel();
	JSplitPane jsp1=new JSplitPane();
	JScrollPane jsp2;
	myDatabaseBean mdbb=new myDatabaseBean();
	JButton btsearch=new JButton("查询");
	JTextField tfs=new JTextField(10);
	JTextField zrs=new JTextField();
	int total=0;
	public myTreeBean()
	{
		mytree=new JTree();
		//mytree.setBackground(Color.green);
		model=(DefaultTreeModel)mytree.getModel();
		initMyTree();
		initContentPanel();
		setLayout(new BorderLayout());
		jsp2=new JScrollPane(mytree); 
		jsp2.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
		jsp1.setLeftComponent(jsp2);
		jsp1.setRightComponent(contentp);
		add(jsp1,"Center");
		p1.setLayout(new GridLayout(1,1,0,0));	//南面面板
		JPanel pp1=new JPanel();
		pp1.setLayout(new FlowLayout());				
		total=mdbb.getCount();
		zrs=new JTextField("通讯录总人数"+total+"人");
		zrs.setEditable(false);
		zrs.setForeground(Color.red);
		pp1.add(zrs);
		pp1.add(new JLabel("您可以在这里查询:",new ImageIcon("Images/tips.gif"),SwingConstants.HORIZONTAL));
		pp1.add(tfs);
		pp1.add(btsearch);
		p1.add(pp1);
		add(p1,"South");
		btsearch.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				String name=tfs.getText().intern();
				if(!name.trim().equals(""))
				{
					if(mdbb.getPersonInfo(name).name!=null)
					updateContentPanel(mdbb.getPersonInfo(name));
				}
			}
		});
		
		mytree.addTreeSelectionListener(new TreeSelectionListener()
		{
			public void valueChanged(TreeSelectionEvent ee)		//树响应事件
			{	
			  if(mytree.getLastSelectedPathComponent()!=null)
			  {
				DefaultMutableTreeNode node=(DefaultMutableTreeNode)mytree.getLastSelectedPathComponent();
				if(node.isLeaf())
				{
					String name=node.toString();
					if(mdbb.getPersonInfo(name).name!=null)
						updateContentPanel(mdbb.getPersonInfo(name));
				}
				if(node.isRoot())
				{
					mdbb.readDatabase();
					total=mdbb.getCount();
					System.out.println(total);
					zrs.setText("通讯录总人数"+total+"人");
					updateTreeNode();
					initContentPanel();
				}
			  }
			}
		});
	}
	
	public void initMyTree()
	{	
		root=new DefaultMutableTreeNode("我的微型通讯录");
		model.setRoot(root);
		root1=new DefaultMutableTreeNode("我的同学");
		root2=new DefaultMutableTreeNode("我的亲人");
		root3=new DefaultMutableTreeNode("我的朋友");
		model.insertNodeInto(root1,root,0);
		model.insertNodeInto(root2,root,0);
		model.insertNodeInto(root3,root,0);
//		root.add(root1);		
//		root.add(root2);
//		root.add(root3);
		for(int i=1;i<=mdbb.getPersonCount();i++)
		{
			DefaultMutableTreeNode leafnode=new DefaultMutableTreeNode(mdbb.r(i).name);
			if(mdbb.r(i).mode==1)
				model.insertNodeInto(leafnode,root1,0);
			if(mdbb.r(i).mode==2)
				model.insertNodeInto(leafnode,root2,0);
			if(mdbb.r(i).mode==3)
				model.insertNodeInto(leafnode,root3,0);
		}
		mytree.expandPath(mytree.getPathForRow(0));
	}
	public void updateTreeNode()
	{
		root1.removeAllChildren();
		root2.removeAllChildren();
		root3.removeAllChildren();
		model.removeNodeFromParent(root1);
		model.removeNodeFromParent(root2);
		model.removeNodeFromParent(root3);
		model.insertNodeInto(root1,root,0);
		model.insertNodeInto(root2,root,0);
		model.insertNodeInto(root3,root,0);
		
		for(int i=1;i<=mdbb.getPersonCount();i++)
		{
			DefaultMutableTreeNode leafnode=new DefaultMutableTreeNode(mdbb.r(i).name);
			if(mdbb.r(i).mode==1)	
				model.insertNodeInto(leafnode,root1,0);
			if(mdbb.r(i).mode==2)
				model.insertNodeInto(leafnode,root2,0);
			if(mdbb.r(i).mode==3)
				model.insertNodeInto(leafnode,root3,0);
		}			
	}	
	public void updateContentPanel(myPersonBean person)
	{	
		if(person.sex==true)
		icon=new ImageIcon("Images/nan.jpg");
		else
		icon=new ImageIcon("Images/nv.jpg");		
		name.setIcon(icon);
		name.setText(person.name);
		name.setHorizontalAlignment(SwingConstants.LEFT);
		address.setText(person.address);
		phone.setText(person.homephone);
		mobilephone.setText(person.mobilephone);
		QQ.setText(person.QQ);
		email.setText(person.email);	
		if(person.sex)
		this.SEX.setText("男");
		else
		this.SEX.setText("女");
	}
	
	public void initContentPanel()
	{
	contentp.setBackground(Color.white);
	contentp.setLayout(new GridLayout(7,2,0,0));
	if(mdbb.getPersonCount()!=0)
	 {
		myPersonBean person=mdbb.r(1);
		if(person.sex==true)
		icon=new ImageIcon("Images/nan.jpg");
		else
		icon=new ImageIcon("Images/nv.jpg");
	
		name.setIcon(icon);
		name.setText(person.name);
		name.setHorizontalAlignment(SwingConstants.LEFT);
		contentp.add(na);
		contentp.add(name);
		
		address.setText(person.address);
		contentp.add(ad);
		contentp.add(address);
		
		phone.setText(person.homephone);
		contentp.add(ph);
		contentp.add(phone);
			
		mobilephone.setText(person.mobilephone);
		contentp.add(mp);
		contentp.add(mobilephone);
		
		contentp.add(qq);
		QQ.setText(person.QQ);
		contentp.add(QQ);
		
		contentp.add(em);
		email.setText(person.email);
		contentp.add(email);	
	
		if(person.sex)
			SEX.setText("男");
		else
			SEX.setText("女");
		contentp.add(se);
		contentp.add(SEX);	
	 }
	}
	public void removeNode()								//删除某个结点
	{
		DefaultMutableTreeNode node=(DefaultMutableTreeNode)mytree.getLastSelectedPathComponent();
		DefaultMutableTreeNode r=(DefaultMutableTreeNode)node.getParent();
		try
		{
		model.removeNodeFromParent(node);
		}
		catch(Exception e)
		{}
		mdbb.deletePerson(node.toString());
		System.out.println(node.toString());
	}
	
	public DefaultMutableTreeNode getSelectedNode()			//获取当前选择的结点
	{
		if(mytree.getLastSelectedPathComponent()!=null)
		{
			DefaultMutableTreeNode node=(DefaultMutableTreeNode) mytree.getLastSelectedPathComponent();		
			return node;
		}	
		return null;
	}
	
	public boolean selectedIsLeaf()							//判断当前结点是否是叶子结点
	{	
		if(mytree.getLastSelectedPathComponent()!=null)
		{
			DefaultMutableTreeNode node=(DefaultMutableTreeNode) mytree.getLastSelectedPathComponent();		
			if(node.isLeaf())
				return true;
			else 
				return false;
		}
		return false;
	}
	
	public myPersonBean getSelected()						//获取当前选择结点对应的人属性值
	{
			DefaultMutableTreeNode node=(DefaultMutableTreeNode) mytree.getLastSelectedPathComponent();		
			if(node.isLeaf())
				{
				return mdbb.getPersonInfo(node.toString());
				}
			return null;
	}

	public static void main(String args[])
	{
		JFrame jf=new JFrame();
		myTreeBean mtb=new myTreeBean();
		jf.add(mtb);
		jf.setSize(500,300);
		jf.show();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -