Foros del Web » Programación para mayores de 30 ;) » Java »

duda dibujar arbol

Estas en el tema de duda dibujar arbol en el foro de Java en Foros del Web. Hola otra vez, estoy de nuevo en apuros, tengo por un lado un codigo que me hace un arbol, por otro lado tengo un codigo ...
  #1 (permalink)  
Antiguo 30/04/2011, 04:28
 
Fecha de Ingreso: abril-2011
Mensajes: 10
Antigüedad: 13 años
Puntos: 0
duda dibujar arbol

Hola otra vez, estoy de nuevo en apuros, tengo por un lado un codigo que me hace un arbol, por otro lado tengo un codigo que me coge dos elementos y los dibuja, y estoy intentando unirlos de manera q al final consiga dibujar el arbol (con todos los nodos). No me da errores cuando compilo, pero cuando ejecuto me sale:

java.lang.NoClassDefFoundError: Arbol
Exception in thread "main" Exit code: 1
There were errors

Os paso los codigos por si me haceis el gran favor de mirarlos:

import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.util.*;
import java.util.Vector;
import java.lang.Object;

public class Arbol {
public static void main (String args[]) {
ParteDeArbol tronco = new Rama(null, "Tronco", 250, 50);
tronco.insertarVastago(new Rama(tronco, "Rama 1", 100, 100));
tronco.insertarVastago(new Rama(tronco, "Rama 2", 200, 100));
tronco.insertarVastago(new Rama(tronco, "Rama 3", 300, 100));
tronco.insertarVastago(new Rama(tronco, "Rama 4", 400, 100));
tronco.insertarVastago(new Rama(tronco, "Rama 5", 500, 100));

tronco.getVastagoPorNombre("Rama 1").insertarVastago(new Rama(tronco.getVastagoPorNombre("Rama 1"), "Rama 6", 100, 200));
tronco.getVastagoPorNombre("Rama 1").insertarVastago(new Hoja(tronco.getVastagoPorNombre("Rama 1"), "Hoja 1"));
tronco.getVastagoPorNombre("Rama 3").insertarVastago(new Hoja(tronco.getVastagoPorNombre("Rama 3"), "Hoja 4"));
tronco.getVastagoPorNombre("Rama 1").getVastagoPorNombre("Rama 6").insertarVastago(new Hoja(tronco.getVastagoPorNombre("Rama 1").getVastagoPorNombre("Rama 6"), "Hoja 2"));
tronco.getVastagoPorNombre("Rama 1").getVastagoPorNombre("Rama 6").insertarVastago(new Hoja(tronco.getVastagoPorNombre("Rama 1").getVastagoPorNombre("Rama 6"), "Hoja 3"));
tronco.mostrarSubarbol(0);

tronco.getVastagoPorNombre("Rama 3").mostrarSubarbol(0);
tronco.getParteDeArbolPorNombre("Hoja 3").setNombre("Hoja n");
System.out.println("\nEl padre de Hoja n es " + tronco.getParteDeArbolPorNombre("Hoja n").getPadre().getNombre());
tronco.mostrarSubarbol(0);

CircleDraw circulo1=new CircleDraw("Rama 1","Hoja 1");
Frame frame = circulo1 ;
frame.addWindowListener (new WindowAdapter(){
public void windowClosing (WindowEvent we){
System.exit (0) ;
}
});
frame.setSize (650,650) ;
frame.setVisible (true) ;

}














import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;

public class CircleDraw extends Frame implements java.io.Serializable{
private Rama n1;
private Rama n2;
int x1,y1,x2,y2;

//constructor
public CircleDraw (Rama a, Rama b) {
this.n1=a;
this.n2=b;
x1=n1.getX();
y1=n1.getY();
x2=n2.getX();
y2=n2.getY();
}




public void paint ( Graphics g ) {
Shape circle = new Ellipse2D.Double ( x1 , y1 , 50 , 50 ) ;//los dos ultimos parametros son la anchura y altura del circulo
Shape circle2 = new Ellipse2D.Double ( x2 , y2 , 50 , 50 ) ;//los dos primeros parametros son la x y la y de la posicion
Graphics2D ga = ( Graphics2D ) g;
ga.draw ( circle );
ga.draw(circle2);
ga.setPaint ( Color.blue );
ga.drawLine (x1+25,y1+25,x2+25,y2+25);
ga.fill(circle);
ga.fill(circle2);
}

}













import java.util.*;
import java.util.Vector;

public class Hoja implements ParteDeArbol {
private String nombre;
private ParteDeArbol padre = null;

public Hoja(ParteDeArbol padre, String nombre){
this.padre = padre;
this.nombre = nombre;
}

public String getNombre() {
return nombre;
}

public void setNombre(String nombre) {
this.nombre = nombre;
}

public ParteDeArbol getPadre(){
return padre;
}

public void setPadre(ParteDeArbol padre){
this.padre = padre;
}

public void mostrarSubarbol(int profundidad){
String viñeta = "";
for (int i = 0; i < profundidad; i++){
viñeta += '\t';
}
System.out.println(viñeta + " " + getNombre() + " no tiene vástagos");
}

public void insertarVastago(ParteDeArbol componente) {
System.out.println("No se pueden añadir elementos a una hoja");
}

public void eliminarVastago(ParteDeArbol componente) {
System.out.println("No hay nada por debajo de una hoja");
}

public int getIndiceDeVastago(String nombre){
return -1;
}

public ParteDeArbol getVastago(int indice){
return null;
}

public ParteDeArbol getVastagoPorNombre(String nombre){
return null;
}

public ParteDeArbol getParteDeArbolPorNombre(String nombre){
return null;
}

}









import java.util.*;

public interface ParteDeArbol {

String getNombre();
void setNombre(String nombre);
ParteDeArbol getPadre();
void setPadre(ParteDeArbol padre);
void mostrarSubarbol(int profundidad);
void insertarVastago(ParteDeArbol componente);
void eliminarVastago(ParteDeArbol componente);
int getIndiceDeVastago(String nombre);
ParteDeArbol getVastago(int indice);
ParteDeArbol getVastagoPorNombre(String nombre);
ParteDeArbol getParteDeArbolPorNombre(String nombre);

//Métodos get/set
public int getX() ;
public int getY() ;

public void setX (int x1) ;
public void setY (int y1) ;

}






import java.util.*;
import java.util.Vector;

public class Rama implements ParteDeArbol {
private String nombre;
private Vector<ParteDeArbol> componentes = null;
private ParteDeArbol padre = null;
private int x;
private int y;

public Rama(ParteDeArbol padre, String nombre, int x1, int y1) {
componentes = new Vector<ParteDeArbol>();
this.padre = padre;
this.nombre = nombre;
x=x1;
y=y1;
}

public String getNombre() {
return nombre;
}

public void setNombre(String nombre) {
this.nombre = nombre;
}

public ParteDeArbol getPadre(){
return padre;
}

public void setPadre(ParteDeArbol padre){
this.padre = padre;
}

public void mostrarSubarbol(int profundidad){
String viñeta = "";
for (int i = 0; i < profundidad; i++){
viñeta += '\t';
}
if(componentes.size() == 0){
System.out.println(viñeta + " " + getNombre() + " no tiene vástagos");

}
else{
System.out.println(viñeta + " Subarbol de " + getNombre());
viñeta += '\t';
for(int j = 0;j < componentes.size();j++){
System.out.println(viñeta + " Vastago nº " + j + ": " + componentes.elementAt(j).getNombre());
componentes.elementAt(j).mostrarSubarbol(profundid ad + 1);
}
}
}

public void insertarVastago(ParteDeArbol componente) {
componentes.add(componente);
}

public void eliminarVastago(ParteDeArbol componente) {
componentes.remove(componente);
}

public int getIndiceDeVastago(String nombre){
for(int i = 0;i < componentes.size();i++){
if(componentes.elementAt(i).getNombre().equals(nom bre)){
return i;
}
}
return -1;
}

public ParteDeArbol getVastago(int indice){
if((indice > -1) && (indice < componentes.size())){
return componentes.elementAt(indice);
}
else return null;
}

public ParteDeArbol getVastagoPorNombre(String nombre){
return getVastago(getIndiceDeVastago(nombre));
}

public ParteDeArbol getParteDeArbolPorNombre(String nombre){
ParteDeArbol aux = null;
if(getIndiceDeVastago(nombre) != -1){
return getVastagoPorNombre(nombre);
}
for(int i = 0;i < componentes.size();i++){
aux = componentes.elementAt(i).getParteDeArbolPorNombre( nombre);
if (aux != null){
return aux;
}
}
return aux;
}

public int getX() { return x; }
public int getY() { return y; }

public void setX (int x1) { x = x1; }
public void setY (int y1) { y = y1; }

public String toString ( ) {
String datos = "las coordenadas son";
datos += " x=" + getX() +", y="+getY()+";\n";
return datos;
}

}




si alguien quiere que le mande los .java para compilarlo que me lo diga y se lo mando encantada. Muchisimas gracias

Etiquetas: dibujar, arboles
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:40.