Autor
|
Tema: Dibujar Arbol AVL (Leído 11,855 veces)
|
JDtoar
Desconectado
Mensajes: 6
|
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
Mensajes: 67
|
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!!! ^^
|
|
|
Sk9ITk5Z
|
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
Mensajes: 6
|
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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Dibujar forma en C#
.NET (C#, VB.NET, ASP)
|
TomaSs
|
1
|
2,701
|
3 Octubre 2012, 16:00 pm
por seba123neo
|
|
|
Dibujar Arbol
Programación C/C++
|
SantyXDz
|
3
|
3,398
|
5 Noviembre 2013, 08:03 am
por edr89
|
|
|
Dibujar con putchxy
Programación C/C++
|
julianbesso1
|
2
|
2,432
|
24 Agosto 2014, 01:57 am
por julianbesso1
|
|
|
dibujar y borrar
Desarrollo Web
|
bengy
|
5
|
3,400
|
21 Abril 2015, 01:35 am
por EFEX
|
|
|
dibujar en 3D
.NET (C#, VB.NET, ASP)
|
s_azazel
|
5
|
3,297
|
26 Diciembre 2018, 01:18 am
por Serapis
|
|