Páginas: [1]
|
 |
|
Autor
|
Tema: Dibujar Arbol AVL (Leído 607 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: 60
|
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!!!  ^^
|
|
|
HOFF
Desconectado
Mensajes: 311
El esfuerzo hace la diferencia...
|
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
|
 [/url]
|
|
|
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
|
|
|
|
|
Páginas: [1]
|
|
|
|