当前位置:  技术问答>java相关

为什么JTree 初始时根节点是展开的?

    来源: 互联网  发布时间:2015-09-20

    本文导语:  为什么JTree 初始时根节点是展开的? 怎么让它初始时合并的呢? 谢谢! | 这段代码原来是 Core Java 作者 Cay Horstmann 写的 我给他加了一点点,就行了 构造函数里,最后一句,tree.collapsePath(new Tree...


为什么JTree 初始时根节点是展开的?

怎么让它初始时合并的呢?

谢谢!

|
这段代码原来是 Core Java 作者 Cay Horstmann 写的
我给他加了一点点,就行了
构造函数里,最后一句,tree.collapsePath(new TreePath(root));

/**
 * @version 1.00 1999-07-17
 * @author Cay Horstmann
 */

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.tree.*;

public class TreeEditTest
{  public static void main(String[] args)
   {  JFrame frame = new TreeEditFrame();
      frame.show();
   }
}

class TreeEditFrame extends JFrame
   implements ActionListener
{  public TreeEditFrame()
   {  setTitle("TreeEditTest");
      setSize(300, 200);
      addWindowListener(new WindowAdapter()
         {  public void windowClosing(WindowEvent e)
            {  System.exit(0);
            }
         } );

      // construct tree

      TreeNode root = makeSampleTree();
      model = new DefaultTreeModel(root);
      tree = new JTree(model);
      tree.setEditable(true);

      // add scroll pane with tree to content pane

      Container contentPane = getContentPane();
      JScrollPane scrollPane = new JScrollPane(tree);
      contentPane.add(scrollPane, "Center");

      // make button panel

      JPanel panel = new JPanel();
      addSiblingButton = new JButton("Add Sibling");
      addSiblingButton.addActionListener(this);
      panel.add(addSiblingButton);
      addChildButton = new JButton("Add Child");
      addChildButton.addActionListener(this);
      panel.add(addChildButton);
      deleteButton = new JButton("Delete");
      deleteButton.addActionListener(this);
      panel.add(deleteButton);
      contentPane.add(panel, "South");
      tree.collapsePath(new TreePath(root));
   }

   public TreeNode makeSampleTree()
   {  DefaultMutableTreeNode root
         = new DefaultMutableTreeNode("World");
      DefaultMutableTreeNode country
         = new DefaultMutableTreeNode("USA");
      root.add(country);
      DefaultMutableTreeNode state
         = new DefaultMutableTreeNode("California");
      country.add(state);
      DefaultMutableTreeNode city
         = new DefaultMutableTreeNode("San Jose");
      state.add(city);
      city = new DefaultMutableTreeNode("Cupertino");
      state.add(city);
      state = new DefaultMutableTreeNode("Michigan");
      country.add(state);
      city = new DefaultMutableTreeNode("Ann Arbor");
      state.add(city);
      country = new DefaultMutableTreeNode("Germany");
      root.add(country);
      state = new DefaultMutableTreeNode("Schleswig-Holstein");
      country.add(state);
      city = new DefaultMutableTreeNode("Kiel");
      state.add(city);
      return root;
   }

   public void actionPerformed(ActionEvent event)
   {  DefaultMutableTreeNode selectedNode
         = (DefaultMutableTreeNode)
            tree.getLastSelectedPathComponent();

      if (selectedNode == null) return;

      if (event.getSource().equals(deleteButton))
      {  if (selectedNode.getParent() != null)
            model.removeNodeFromParent(selectedNode);
         return;
      }

      // add new node as sibling or child

      DefaultMutableTreeNode newNode
         = new DefaultMutableTreeNode("New");

      if (event.getSource().equals(addSiblingButton))
      {  DefaultMutableTreeNode parent
            = (DefaultMutableTreeNode)selectedNode.getParent();

         if (parent != null)
         {  int selectedIndex = parent.getIndex(selectedNode);
            model.insertNodeInto(newNode, parent,
               selectedIndex + 1);
         }
      }
      else if (event.getSource().equals(addChildButton))
      {  model.insertNodeInto(newNode, selectedNode,
            selectedNode.getChildCount());
      }

      // now display new node

      TreeNode[] nodes = model.getPathToRoot(newNode);
      TreePath path = new TreePath(nodes);
      tree.scrollPathToVisible(path);
   }

   private DefaultTreeModel model;
   private JTree tree;
   private JButton addSiblingButton;
   private JButton addChildButton;
   private JButton deleteButton;
   private JButton editButton;
}

|
你可以用
collapsePath(treePath)
和expandPath(treePah)
在程序中去根据需要展开或者关闭节点。

|
你的JTree怎么初始化的?代码贴出来
使用DefaultMutableTreeNode和DefaultTreeModel了吗?

    
 
 

您可能感兴趣的文章:

  • 紧急求助:如何动态修改某个选中jTree节点的节点名称。
  • 急救,请问如何得到jTree中被选中节点的父节点的path或者row?
  • 请教Swing高手,如何在JTree中如何通过一个TreePath判断它代表的节点是不是叶节点?
  • 如何响应JTREE中的节点点击事件??
  • (高分) JTree 节点是如何判断双击的?
  • 想在JTree的一些节点左边加上复选框
  • HELP~~~~~~JTREE里面如何避免重复的节点出现
  • jtree如何知道选中节点的TEXT?
  • 请问如何将树(JTree)的节点设置成不同的图标?100分献上!
  • 当我做jtree的类,我要动态的根据需要来增加节点例如
  • 请问,如何实现并处理JTree节点Multi-Selected?
  • *****请教SWING高手,我想让JTree一开始的某个节点处于展开,用的是expandPath(TreePath p),请问如何构造TreePath参数,用字符串可以吗
  • 给分问题:如何展开JTree中的节点,内在细说……在线,解决即给分……
  • 当Jtree.setEditable(true)后修改了节点的title,按回车,这时候触发了什么事件
  • 当Jtree.setEditable(true)后修改了节点的title,按回车,做些判断后怎么让修改失效,改回原来的title(gularess(无吃哪拉)再帮帮忙)
  • 请教各位大侠如何在JTree树中得到各个节点显示出来的字串
  • 如何为JTree设置不同的节点图标?
  • 请问根据一个坐标点怎么判断对应的JTree的哪一个节点上
  • 如何利用JDOM,把JTree中所有节点写入到一个XML文件中?最好有现成的例子。谢谢了。
  • JTree是不是有问题?(在JTree中删除一个节点时)
  • 程序运行时,出现一个完全展开的JTree?
  • 如何判断JTree中一个结点是否已经展开?
  • 怎样消除JTree在展开和合闭时的闪烁?(付代码)
  • java中如何展开JTree?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.swing类jtree的类成员方法: jtree定义及介绍
  • 请问何用新的JTree刷新旧的jtree?
  • java命名空间javax.swing类jtree.accessiblejtree的类成员方法: jtree.accessiblejtree定义及介绍
  • 怎样使JTree对象可以自动有滚动条,
  • java命名空间javax.swing类jtree.treeselectionredirector的类成员方法: jtree.treeselectionredirector定义及介绍
  • JTREE
  • java命名空间javax.swing类jtree.accessiblejtree.accessiblejtreenode的类成员方法: jtree.accessiblejtree.accessiblejtreenode定义及介绍
  • jTree 刷新问题!
  • java命名空间javax.swing类jtree.treemodelhandler的类成员方法: jtree.treemodelhandler定义及介绍
  • 请详细介绍一下JTree的使用方法,88分奉送......................
  • java命名空间javax.swing类jtree.emptyselectionmodel的类成员方法: sharedinstance定义及介绍
  • JTree怎么用呀?
  • java命名空间javax.swing类jtree的类成员方法: selectionredirector定义及介绍
  • 怎样得到Jtree选中项(要String形式)?
  • java命名空间javax.swing类jtree.dynamicutiltreenode的类成员方法: haschildren定义及介绍
  • 请问:如何在java中的jtree控件中使用checkbox
  • java命名空间javax.swing类jtree的类成员方法: getaccessiblecontext定义及介绍
  • 求助!!!JTree
  • java命名空间javax.swing类jtree的类成员方法: createtreemodellistener定义及介绍
  • 请问Swing中的JTree控件如何让监听一个子叶的鼠标事件?
  • java命名空间javax.swing类jtree的类成员方法: paramstring定义及介绍
  • 如何用Jtree实现空结点与非空结点有相同的图标?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3