JTree总结

1、获取当前选中子节点

DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();

2、(DefaultTreeModel)tree.getModel()  //添加删除修改树节点时,先将树转换为模型

public void actionPerformed(ActionEvent e) {
		DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree
				.getLastSelectedPathComponent();// 获取选择的当前节点
		if (e.getSource() == addItem) {
			// 为node添加子节点到所有子节点的最后
			((DefaultTreeModel) tree.getModel()).insertNodeInto(
					new DefaultMutableTreeNode("Test"), node, node
							.getChildCount());
			tree.expandPath(tree.getSelectionPath());
		} else if (e.getSource() == delItem) {
			if (node.isRoot()) {
				return;
			}
			// 首先得到模型,转换为DefaultTreeModel,获取到树模型,从父节点上移除该子节点
			((DefaultTreeModel) tree.getModel()).removeNodeFromParent(node);
		} else if (e.getSource() == editItem) {
			tree.startEditingAtPath(tree.getSelectionPath());//不太灵,不能保存
		}
	}

3、设置树形的节点选择模式

tree.getSelectionModel().setSelectionMode(
				TreeSelectionModel.SINGLE_TREE_SELECTION);

4、获取每一级节点,分别做处理

valueChanged()是实现了TreeSelectionListener的方法

	@Override
	public void valueChanged(TreeSelectionEvent e) {
		// 获取选择的节点
		DefaultMutableTreeNode node = (DefaultMutableTreeNode) jTree.getLastSelectedPathComponent();
		if (node.getLevel() == 0) {
			// 显示提示信息
			JOptionPane.showMessageDialog(null, node.getUserObject() + ": 共"+ node.getChildCount() + "个国家");
		} else if (node.getLevel() == 1) {
			// 显示提示信息
			JOptionPane.showMessageDialog(null, node.getUserObject() + ": 共"+ node.getChildCount() + "名名将");
		} else if (node.getLevel() == 2) {
			// 显示提示信息
			JOptionPane.showMessageDialog(null, node.getParent() + "名将: "+ node.getUserObject());
		}
	}

5、window不同的风格通过UIManager.setLookAndFeel(lookAndFeel);来设置。

lookAndFeel的不同种类有空再研究


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值