JTree

Bom dia pessoal!

Gostaria de saber como faço para inibir a visualização de uma raiz de uma JTree.

Deixa eu explicar melhor:
Montei um menu com uma tree, quebrei em módulos, e não gostaria de mostrar o nó principal, somente os nós intermediários.
Em outro post um amigo do GUJ disse que eu poderia usar o método setRootVisible(false), mas isso não funcionou.

Se puderem me ajudar, eu agradeço!

Um abraço,
Evelyn
:roll: :roll: :roll:

Talvez mexendo no seu DefaultMutableTreeNode…

Tem esse tutorial aí também…
http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html

:idea:

Olá kaabah!

Eu dei uma olhada no tutorial que você passou…

Na verdade eu não quero mostrar na tela aquele Root, entende?

Obrigada!

Um abraço,
Evelyn
:roll: :roll: :roll:

Código gerado pelo VE do eclipse… :smiley:

Aqui o setRootVisible functiona… Acho que vc colocou seu root um nível abaixo do verdadeiro root… será não??

package sample;

import javax.swing.SwingUtilities;
import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.JButton;

public class JTreeFrame extends JFrame {

	private static final long serialVersionUID = 1L;
	private JPanel jContentPane = null;
	private JScrollPane jScrollPane = null;
	private JTree jTree = null;
	private JButton jButton = null;

	/**
	 * This method initializes jScrollPane	
	 * 	
	 * @return javax.swing.JScrollPane	
	 */
	private JScrollPane getJScrollPane() {
		if (jScrollPane == null) {
			jScrollPane = new JScrollPane();
			jScrollPane.setViewportView(getJTree());
		}
		return jScrollPane;
	}

	/**
	 * This method initializes jTree	
	 * 	
	 * @return javax.swing.JTree	
	 */
	private JTree getJTree() {
		if (jTree == null) {
			jTree = new JTree();
		}
		return jTree;
	}

	/**
	 * This method initializes jButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton() {
		if (jButton == null) {
			jButton = new JButton();
			jButton.setText("SetRootVisible");
			jButton.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					
					if( getJTree().isRootVisible() ){
						jTree.setRootVisible(false);
					}else{
						jTree.setRootVisible(true);
					}
					
				}
			});
		}
		return jButton;
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				JTreeFrame thisClass = new JTreeFrame();
				thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				thisClass.setVisible(true);
			}
		});
	}

	/**
	 * This is the default constructor
	 */
	public JTreeFrame() {
		super();
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setSize(300, 200);
		this.setContentPane(getJContentPane());
		this.setTitle("JFrame");
	}

	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new JPanel();
			jContentPane.setLayout(new BorderLayout());
			jContentPane.add(getJScrollPane(), BorderLayout.CENTER);
			jContentPane.add(getJButton(), BorderLayout.SOUTH);
		}
		return jContentPane;
	}

}

olá Pétala!!!
dá uma olhada nesse código, tá funcionando.

[code]public class Pessoa {

 String nome;
 
 Pessoa(String _nome) {
     nome = _nome;
 }
 
 public String toString() {
      return this.nome;
  }     

}[/code]

[code]import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;

public class Arvore extends JPanel {

 private JScrollPane scrollTree;
 private JTree arvore = new JTree();  
 
 private DefaultMutableTreeNode root = new DefaultMutableTreeNode("root");
 private DefaultTreeModel model;

 private DefaultMutableTreeNode Node1;
 private DefaultMutableTreeNode Node2;
 private DefaultMutableTreeNode Node3;
 
 public Arvore() {
     
     this.setLayout( null );
     this.setSize(new Dimension(718, 178));

     Node1 = new DefaultMutableTreeNode("Nodo 1");        
     Node2 = new DefaultMutableTreeNode("Nodo 2");
     Node3 = new DefaultMutableTreeNode("Nodo 3");
     	  
  for(int i=0 ; i<3 ; ++i){
	Pessoa pessoa = new Pessoa("Renato");	
	DefaultMutableTreeNode tempNode = new DefaultMutableTreeNode(pessoa);
	Node1.add(tempNode);
  }        

  for(int i=0 ; i<3 ; ++i){
	Pessoa pessoa = new Pessoa("Renato");	
	DefaultMutableTreeNode tempNode = new DefaultMutableTreeNode(pessoa);
	Node2.add(tempNode);
  }

  for(int i=0 ; i<3 ; ++i){
	Pessoa pessoa = new Pessoa("Renato");	
	DefaultMutableTreeNode tempNode = new DefaultMutableTreeNode(pessoa);
	Node3.add(tempNode);
  }	

     root.add(Node1);
     root.add(Node2);
     root.add(Node3);
     
     model = new DefaultTreeModel(root);          
     arvore = new JTree(model);
             
     arvore.setRootVisible(false);
     arvore.setShowsRootHandles(true);
      
     scrollTree = new JScrollPane(arvore);
     scrollTree.setBounds(5,5,710,164); 
                    
     this.add(scrollTree);   
 }
      
 public static void main(String[] args){
     
     JFrame frame = new JFrame();
     Arvore  arv = new Arvore();
     
     frame.getContentPane().add(arv);
     frame.setSize(800,300);
     frame.show();
        
 }

}[/code]