Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/04/2011, 04:28
sonia949
 
Fecha de Ingreso: abril-2011
Mensajes: 10
Antigüedad: 13 años, 11 meses
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