elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Dibujar Arbol AVL
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Dibujar Arbol AVL  (Leído 11,855 veces)
JDtoar

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Dibujar Arbol AVL
« en: 20 Abril 2008, 01:20 am »

Hola,

Tengo implementado un menú con las opciones de insertar, eliminar, buscar y recorrer un arbol AVL.
Ahora quiero agregarle la opcion de que me lo dibuje, y es precisamente aqui donde no tengo muy claro los conceptos graficos de java. Tal vez lo pueda hacer con la libreria Graphics y un JFrame o en un canvas, pero no se que sera mejor.
 
Me podrian por favor dar sugerencias de cual es la mejor manera para dibujar el arbol... gracias de antemano.


En línea

Lu15_CL4

Desconectado Desconectado

Mensajes: 67



Ver Perfil
Re: Dibujar Arbol AVL
« Respuesta #1 en: 20 Abril 2008, 09:26 am »

eso depende de ti... usa lo que mejor sepas usar, java trae un objeto que te muestra los arboles igual que la organizacion de carpetas de windows, asi:
 __
|__|
    |
    |___
    ||__|
    |___
    ||__|
    |___
    ||__|
    |    |___
    |    ||__|
    |___
    ||__|

javax.swing.JTree
no recuerdo como se usa... U_u


En línea

Te regalo .1 centavo de dolar diario, registrate aqui, pideme + info por PM ^^, el .1 centavo puede ir creciendo hasta el infinito!!! :xD ^^
Sk9ITk5Z


Desconectado Desconectado

Mensajes: 2.306



Ver Perfil WWW
Re: Dibujar Arbol AVL
« Respuesta #2 en: 21 Abril 2008, 22:06 pm »

Mira si quieres mostrar algo en forma de arbol es con el JTREE que si tiens un buen IDE lo puedes jalar y arrastrar sino haslo con codigo... te dejo un ejmplo de como crear uno pero a qui tu le tienes que decile lso nombres de los nodos...espero ek te sirva de algo...

package EjemploJtree;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

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

public class ModelJTree extends JFrame {

  private JTree tree;

  private DefaultTreeModel model;

  private DefaultMutableTreeNode rootNode;

  public ModelJTree() {
    DefaultMutableTreeNode philosophersNode = getPhilosopherTree();
    model = new DefaultTreeModel(philosophersNode);
    tree = new JTree(model);
    //*****************************Botones*************************************//
    JButton addButton = new JButton("Añadir Objeto");
    addButton.addActionListener(new ActionListener() {
            @Override
      public void actionPerformed(ActionEvent event) {
        addPhilosopher();
      }
    });
   
    JButton removeButton = new JButton("Remover un objeto");
    removeButton.addActionListener(new ActionListener() {
            @Override
      public void actionPerformed(ActionEvent event) {
        removeSelectedPhilosopher();
      }
    });
   
    JButton saveButton = new JButton("Guardar");
    saveButton.addActionListener(new ActionListener() {
            @Override
      public void actionPerformed(ActionEvent event) {
        saveSelectedPhilosopher();
      }
    });
   
    JButton cargaButton = new JButton("Abrir");
    cargaButton.addActionListener(new ActionListener() {
            @Override
      public void actionPerformed(ActionEvent event) {
        cargaSelectedPhilosopher();
      }

         
    });
//*****************************Fin Botones*************************************//
   
    JPanel inputPanel = new JPanel();
    inputPanel.add(addButton);
    inputPanel.add(removeButton);
    inputPanel.add(saveButton);
    inputPanel.add(cargaButton);

    Container container = getContentPane();

    container.add(new JScrollPane(tree), BorderLayout.CENTER);

    container.add(inputPanel, BorderLayout.NORTH);

    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setSize(435, 300);
    setVisible(true);

  }

  private void addPhilosopher() {
    DefaultMutableTreeNode parent = getSelectedNode();
    if (parent == null) {
      JOptionPane.showMessageDialog(ModelJTree.this, "Selecciona un area", "Error",
          JOptionPane.ERROR_MESSAGE);

      return;
    }
    String name = JOptionPane.showInputDialog(ModelJTree.this, "Dame el nombre:");
    model.insertNodeInto(new DefaultMutableTreeNode(name), parent, parent.getChildCount());

  }

  private void removeSelectedPhilosopher() {
    DefaultMutableTreeNode selectedNode = getSelectedNode();
    if (selectedNode != null)
      model.removeNodeFromParent(selectedNode);
  }

  private void saveSelectedPhilosopher(){
   DefaultMutableTreeNode selectedNode = getSelectedNode();
   
  }
 
  private void cargaSelectedPhilosopher(){
   DefaultMutableTreeNode selectedNode = getSelectedNode();
   
  }
 
  private DefaultMutableTreeNode getSelectedNode() {
    return (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
  }

  private DefaultMutableTreeNode getPhilosopherTree() {
    //String rai = JOptionPane.showInputDialog(ModelJTree.this, "Dame el nombre raiz:");
    DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode("Transpote");
   
    return rootNode;
  }
  public static void main(String args[]) {
    new ModelJTree();
  }
}
         
En línea

Este es un pueblo de corazón extraviado, no quiere conocer mis caminos por eso no entraran en mi descanso.
JDtoar

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Dibujar Arbol AVL
« Respuesta #3 en: 23 Abril 2008, 06:12 am »

Ok, muchas gracias por responder.
Finalmente lo hice con una libreria grafica llamada StdDraw que encontre en la red... de este modo lo pude realizar recursivo en un JFrame.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Dibujar forma en C#
.NET (C#, VB.NET, ASP)
TomaSs 1 2,701 Último mensaje 3 Octubre 2012, 16:00 pm
por seba123neo
Dibujar Arbol
Programación C/C++
SantyXDz 3 3,398 Último mensaje 5 Noviembre 2013, 08:03 am
por edr89
Dibujar con putchxy
Programación C/C++
julianbesso1 2 2,432 Último mensaje 24 Agosto 2014, 01:57 am
por julianbesso1
dibujar y borrar
Desarrollo Web
bengy 5 3,400 Último mensaje 21 Abril 2015, 01:35 am
por EFEX
dibujar en 3D
.NET (C#, VB.NET, ASP)
s_azazel 5 3,297 Último mensaje 26 Diciembre 2018, 01:18 am
por Serapis
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines