Ajuda com JTable com arvore

import java.awt.Color;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.border.LineBorder;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.JButton;
import javax.swing.SwingConstants;
import java.awt.Component;
import javax.swing.JLabel;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class Aplicacao_Trabalho_Final extends JFrame {

/**
 * 
 */
private static final long serialVersionUID = 1L;

private Clientes raiz;

private JPanel contentPane;
private JTextField tf_Telefone;
private JTextField tf_CPF;
private JTextField tf_Codigo;
private JTextField tf_Nome;
private JTable table;

/**
 * Launch the application.
 */
public static void main(String[] args) {
	EventQueue.invokeLater(new Runnable() {
		public void run() {
			try {
				Aplicacao_Trabalho_Final frame = new Aplicacao_Trabalho_Final();
				frame.setVisible(true);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	});
}

/**
 * Create the frame.
 */
public Aplicacao_Trabalho_Final() {
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	setBounds(100, 100, 507, 300);
	contentPane = new JPanel();
	contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
	setContentPane(contentPane);
	
	JPanel Painel_botões = new JPanel();
	
	JPanel Painel_Registro = new JPanel();
	
	JScrollPane scrollPane = new JScrollPane();
	GroupLayout gl_contentPane = new GroupLayout(contentPane);
	gl_contentPane.setHorizontalGroup(
		gl_contentPane.createParallelGroup(Alignment.LEADING)
			.addComponent(Painel_Registro, GroupLayout.DEFAULT_SIZE, 481, Short.MAX_VALUE)
			.addComponent(Painel_botões, GroupLayout.DEFAULT_SIZE, 481, Short.MAX_VALUE)
			.addGroup(gl_contentPane.createSequentialGroup()
				.addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 481, GroupLayout.PREFERRED_SIZE)
				.addContainerGap())
	);
	gl_contentPane.setVerticalGroup(
		gl_contentPane.createParallelGroup(Alignment.LEADING)
			.addGroup(gl_contentPane.createSequentialGroup()
				.addComponent(Painel_botões, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
				.addGap(2)
				.addComponent(Painel_Registro, GroupLayout.PREFERRED_SIZE, 122, GroupLayout.PREFERRED_SIZE)
				.addPreferredGap(ComponentPlacement.RELATED)
				.addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 92, GroupLayout.PREFERRED_SIZE)
				.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
	);
	
	table = new JTable();
	table.setModel(new DefaultTableModel(
		new Object[][] {
			
		},
		new String[] {
			"Codigo", "Nome", "CPF", "Telefone"
			
		}
	));
		
		table.setBorder(new LineBorder (Color.green));
		table.setGridColor(Color.green);
		table.setShowGrid(true);

 		scrollPane.setViewportView(table);
	
		
		table.getColumnModel().getColumn(0).setPreferredWidth(20);
		table.getColumnModel().getColumn(1).setPreferredWidth(150);
		table.getColumnModel().getColumn(2).setPreferredWidth(70);
		table.getColumnModel().getColumn(3).setPreferredWidth(70);
		
		
	
	
	JLabel label = new JLabel("");
	
	JLabel lblNome = new JLabel("Nome");
	
	JLabel lblCdigo = new JLabel("C\u00F3digo");
	
	JLabel lblCpf = new JLabel("CPF");
	
	JLabel lblTelefone = new JLabel("Telefone");
	
	tf_Telefone = new JTextField();
	tf_Telefone.setColumns(10);
	
	tf_CPF = new JTextField();
	tf_CPF.setColumns(10);
	
	tf_Codigo = new JTextField();
	tf_Codigo.setColumns(10);
	
	tf_Nome = new JTextField();
	tf_Nome.setColumns(10);
	
	JButton btnInserir = new JButton("Inserir");
	btnInserir.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent arg0) {
			inserir();
		}
	});
	
	JButton btnCancelar = new JButton("Cancelar");
	btnCancelar.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent arg0) {
			Runtime.getRuntime();
		}
	});
	GroupLayout gl_Painel_Registro = new GroupLayout(Painel_Registro);
	gl_Painel_Registro.setHorizontalGroup(
		gl_Painel_Registro.createParallelGroup(Alignment.LEADING)
			.addGroup(gl_Painel_Registro.createSequentialGroup()
				.addGroup(gl_Painel_Registro.createParallelGroup(Alignment.LEADING)
					.addGroup(gl_Painel_Registro.createSequentialGroup()
						.addGap(212)
						.addComponent(label))
					.addGroup(gl_Painel_Registro.createSequentialGroup()
						.addContainerGap()
						.addGroup(gl_Painel_Registro.createParallelGroup(Alignment.LEADING)
							.addGroup(gl_Painel_Registro.createSequentialGroup()
								.addComponent(lblNome, GroupLayout.PREFERRED_SIZE, 42, GroupLayout.PREFERRED_SIZE)
								.addPreferredGap(ComponentPlacement.RELATED)
								.addComponent(tf_Nome, GroupLayout.DEFAULT_SIZE, 425, Short.MAX_VALUE))
							.addGroup(gl_Painel_Registro.createSequentialGroup()
								.addGroup(gl_Painel_Registro.createParallelGroup(Alignment.LEADING, false)
									.addGroup(gl_Painel_Registro.createSequentialGroup()
										.addComponent(lblCdigo)
										.addPreferredGap(ComponentPlacement.RELATED)
										.addComponent(tf_Codigo))
									.addGroup(gl_Painel_Registro.createSequentialGroup()
										.addComponent(lblCpf)
										.addPreferredGap(ComponentPlacement.RELATED)
										.addComponent(tf_CPF))
									.addGroup(gl_Painel_Registro.createSequentialGroup()
										.addComponent(lblTelefone)
										.addPreferredGap(ComponentPlacement.RELATED)
										.addComponent(tf_Telefone, GroupLayout.PREFERRED_SIZE, 148, GroupLayout.PREFERRED_SIZE)))
								.addGap(32)
								.addComponent(btnInserir)
								.addGap(18)
								.addComponent(btnCancelar)))))
				.addContainerGap())
	);
	gl_Painel_Registro.setVerticalGroup(
		gl_Painel_Registro.createParallelGroup(Alignment.LEADING)
			.addGroup(gl_Painel_Registro.createSequentialGroup()
				.addGap(5)
				.addComponent(label)
				.addGroup(gl_Painel_Registro.createParallelGroup(Alignment.LEADING)
					.addGroup(gl_Painel_Registro.createSequentialGroup()
						.addGap(9)
						.addComponent(lblNome)
						.addPreferredGap(ComponentPlacement.RELATED))
					.addGroup(Alignment.TRAILING, gl_Painel_Registro.createSequentialGroup()
						.addPreferredGap(ComponentPlacement.RELATED, 9, Short.MAX_VALUE)
						.addComponent(tf_Nome, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
						.addGap(6)))
				.addGroup(gl_Painel_Registro.createParallelGroup(Alignment.BASELINE)
					.addComponent(tf_Codigo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
					.addComponent(lblCdigo))
				.addPreferredGap(ComponentPlacement.RELATED)
				.addGroup(gl_Painel_Registro.createParallelGroup(Alignment.BASELINE)
					.addComponent(lblCpf)
					.addComponent(tf_CPF, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
					.addComponent(btnInserir)
					.addComponent(btnCancelar))
				.addPreferredGap(ComponentPlacement.RELATED)
				.addGroup(gl_Painel_Registro.createParallelGroup(Alignment.BASELINE)
					.addComponent(lblTelefone)
					.addComponent(tf_Telefone, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
				.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
	);
	gl_Painel_Registro.linkSize(SwingConstants.HORIZONTAL, new Component[] {lblNome, lblCdigo, lblCpf, lblTelefone});
	gl_Painel_Registro.linkSize(SwingConstants.HORIZONTAL, new Component[] {btnInserir, btnCancelar});
	Painel_Registro.setLayout(gl_Painel_Registro);
	
	//dtm.addRow(new Object[]{"","","","",""});
	
	JButton btnPesquisar = new JButton("Pesquisar");
	btnPesquisar.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent arg0) {
			busca();
		}
	});
	
	JButton btnDeletar = new JButton("Deletar");
	btnDeletar.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent arg0) {
			delete();
		}
	});
	
	JButton btnInorder = new JButton("InOrder");
	btnInorder.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent arg0) {
			travessia(2);
			
		}
	});
	
	JButton btnPreorder = new JButton("PreOrder");
	btnPreorder.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent arg0) {
			travessia(1);
		}
	});
	
	JButton btnPosorder = new JButton("PosOrder");
	btnPosorder.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent arg0) {
			travessia(3);
		}
	});
	GroupLayout gl_Painel_botões = new GroupLayout(Painel_botões);
	gl_Painel_botões.setHorizontalGroup(
		gl_Painel_botões.createParallelGroup(Alignment.LEADING)
			.addGroup(gl_Painel_botões.createSequentialGroup()
				.addComponent(btnPesquisar)
				.addPreferredGap(ComponentPlacement.RELATED)
				.addComponent(btnDeletar)
				.addPreferredGap(ComponentPlacement.RELATED)
				.addComponent(btnInorder)
				.addPreferredGap(ComponentPlacement.RELATED)
				.addComponent(btnPreorder)
				.addPreferredGap(ComponentPlacement.RELATED)
				.addComponent(btnPosorder)
				.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
	);
	gl_Painel_botões.setVerticalGroup(
		gl_Painel_botões.createParallelGroup(Alignment.LEADING)
			.addGroup(gl_Painel_botões.createSequentialGroup()
				.addGroup(gl_Painel_botões.createParallelGroup(Alignment.BASELINE)
					.addComponent(btnPesquisar)
					.addComponent(btnDeletar)
					.addComponent(btnInorder)
					.addComponent(btnPreorder)
					.addComponent(btnPosorder))
				.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
	);
	gl_Painel_botões.linkSize(SwingConstants.VERTICAL, new Component[] {btnPesquisar, btnDeletar, btnInorder, btnPreorder, btnPosorder});
	gl_Painel_botões.linkSize(SwingConstants.HORIZONTAL, new Component[] {btnPesquisar, btnDeletar, btnInorder, btnPreorder, btnPosorder});
	Painel_botões.setLayout(gl_Painel_botões);
	contentPane.setLayout(gl_contentPane);
	
	this.raiz = new Clientes();
}

private void inserir() {
	
	  String codigoSTR = tf_Codigo.getText();
	  double codigo = Double.parseDouble(codigoSTR);
	  String nome= tf_Nome.getText();
	  String cpf = tf_CPF.getText();
	  String telefone =tf_Telefone.getText();
	
	  Clientes novoNo = new Clientes();  
	  
      novoNo.setCodigo(codigo);   
      novoNo.setNome(nome);  
      novoNo.setCpf(cpf);
      novoNo.setTelefone(telefone);
      
      if (raiz == null)
    	  
          raiz = novoNo;  
      else   
      {  
    	  Clientes atual = raiz;   
    	  Clientes parente;  
          while (true)   
         {  
            parente = atual;  
            if (codigo < atual.getCodigo())   
            {  
               atual = atual.getFilhosDaEsquerda();  
               if (atual == null)   
               {  
                  parente.setFilhosDaEsquerda(novoNo);  
                  return;  
               }  
            }  
            else  
            {  
               atual = atual.getFilhosDaDireita();  
               if (atual == null)   
               {   
                  parente.setFilhosDaDireita(novoNo);  
                  return;  
               }  
            }   
         }   
      }
   }

private void travessia(int tipoTravessia) {  
      switch (tipoTravessia) {  
      case 1:    
         preOrder(raiz);  
         break;  
      case 2:    
         inOrder(raiz);  
         break;  
      case 3:    
         posOrder(raiz);  
         break;  
      }    
   }  
private void preOrder(Clientes localraiz) {  
      if (localraiz != null) {  
         localraiz.mostraNo();  
         preOrder(localraiz.getFilhosDaEsquerda());  
         preOrder(localraiz.getFilhosDaDireita());  
      }  
   }    
   
   
   private void inOrder(Clientes localraiz) {  
      if (localraiz != null) {  
         inOrder(localraiz.getFilhosDaEsquerda());  
         localraiz.mostraNo();  
         inOrder(localraiz.getFilhosDaDireita());  
      }  
   }  
  
   private void posOrder(Clientes localraiz) {  
      if (localraiz != null) {  
         posOrder(localraiz.getFilhosDaEsquerda());  
         posOrder(localraiz.getFilhosDaDireita());  
         localraiz.mostraNo();  
      }  
   }
   
   private Clientes busca(){  
	   JOptionPane.showInputDialog("Forneça o Código");
	   String codSTR = tf_Codigo.getText();
	   double cod = Double.parseDouble(codSTR);
	   
	  Clientes atual = raiz;
	  
       while (atual.getCodigo() != cod)  
       {  
         if (cod < atual.getCodigo())  
         
            atual = atual.getFilhosDaEsquerda(); 
         
         else 
         
            atual = atual.getFilhosDaDireita();
         
         
         if (atual == null)
        	 return null;	 
        JOptionPane.showMessageDialog(null, "Nenhum Resultado");
        
      }   
      	 
      return atual;   
   }
   
   private boolean delete()  
   {
	  JOptionPane.showInputDialog("Forneça o Código");
	  String chaveSTR = tf_Codigo.getText();
	  double chave = Double.parseDouble(chaveSTR);
	  
  Clientes atual = raiz;  
      Clientes parente = raiz;
      
      boolean eFilhosDaEsquerda = true;  
  
      while (atual.getCodigo() != chave)   
      {  
         parente = atual;  
         if (chave < atual.getCodigo())   
         {  
            eFilhosDaEsquerda = true;  
            atual = atual.getFilhosDaEsquerda();  
         } else
         {  
            eFilhosDaEsquerda = false;  
            atual = atual.getFilhosDaDireita();  
         }  
         if (atual == null)   
            return false;   
      } 
        
    
      if (atual.getFilhosDaEsquerda() == null && atual.getFilhosDaDireita() == null) {  
         if (atual == raiz)
            raiz = null;   
         else if (eFilhosDaEsquerda)  
            parente.setFilhosDaEsquerda(null);  
         else  
           
            parente.setFilhosDaDireita(null);  
      }  
  
        
      else if (atual.getFilhosDaDireita() == null)  
         if (atual == raiz)  
            raiz = atual.getFilhosDaDireita();  
         else if (eFilhosDaEsquerda)        
            parente.setFilhosDaDireita(atual.getFilhosDaEsquerda());  
         else                       
            parente.setFilhosDaDireita(atual.getFilhosDaDireita());  
    
      else if (atual.getFilhosDaEsquerda() == null)  
         if (atual == raiz)  
            raiz = atual.getFilhosDaDireita();  
         else if (eFilhosDaEsquerda)       
            parente.setFilhosDaEsquerda(atual.getFilhosDaDireita());  
         else                       
            parente.setFilhosDaDireita(atual.getFilhosDaDireita());  
  
      else   
      {  
           
    	  Clientes successor = getSuccessor(atual);  
    
         if (atual == raiz)  
            raiz = successor;  
         else if (eFilhosDaEsquerda)  
            parente.setFilhosDaEsquerda(successor);  
         else  
            parente.setFilhosDaDireita(successor);  
    
         successor.setFilhosDaDireita(atual.getFilhosDaDireita());  
      } 
        
      return true;   
   } 

   private Clientes getSuccessor(Clientes deleteNo) {  
	   Clientes sucessorParente = deleteNo;  
	   Clientes sucessor = deleteNo;  
	   Clientes atual = deleteNo.getFilhosDaDireita();   
      while (atual != null){   
         sucessorParente = sucessor;  
         sucessor = atual;  
         atual = atual.getFilhosDaDireita();   
      }        
      if (sucessor != deleteNo.getFilhosDaDireita()){  
         sucessorParente.setFilhosDaDireita(sucessor.getFilhosDaDireita());  
         sucessor.setFilhosDaDireita(deleteNo.getFilhosDaDireita()); 
         
      }  
      JOptionPane.showMessageDialog(null, "Removido Com Sucesso");
      return sucessor; 
      
   }  	

}

porém eu nunca usei o jTable, não sei nen como começar, eu usei o windowbuilder pra fazer a tela, o problema é que eu não sei como inseir dados no jTable… se puderem ajudar ficarei mt grato… desde já agradeço a todos pela colaboração… abraços
desculpa o titulo tá errado é Jtable eu usei o windowBuilder…
e tenho q inserir os dados usando arvore…

Sei. Que tipo de ajuda você precisa? O que está ocorrendo? Pode postar um Alt-Printscreen dessa tela para ver o que aparece e o que você gostaria que aparecesse? Só de olhar o código não dá para saber o que está errado.

se necessário mando as outras classes que usei… abraços a todos

eu preciso que o usuario formeça os dados e apareça na Jtable… porem não sei como fazer isso… se puder ajudar agradeço mt… abraços amigo

Para inserir dados em uma JTable é necessário criar um TableModel (o DefaultTableModel é ruim, não use - um dos problemas dele é que você não consegue atualizar os dados na JTable de forma simples).

Procure aqui no GUJ sobre “ObjectTableModel”, que é uma classe que foi criada para simplificar esses problemas e foi criada por pessoas do GUJ.

vou tentar aki… obrigado

Aproveitando, já que você é novo no fórum, leia esse tópico:
http://www.guj.com.br/java/287476-gujnautas-how-to

Ele dá as orientações quanto ao uso do fórum. Em especial, leia o texto sobre a tag code:
http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor

cara não consigo msm, não sei nen como começar… primeira vez q faço interface grafica…
tentei aki, pesquisei mas não deu… abraços