Beleza pessoal?
Fiz um programa para desenhar alguns triangulos, um dentro do outro - sierpinski -.
Uso o NetBeans 3.5 e o programa compilou e… compilou. Nao apareceu o frame, os triangulos e uma frase de erro sequer, apenas:
Exception in thread “main” java.lang.NoClassDefFoundError: Projeto_Triangulos/Triangulo (wrong name: Triangulo)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:537)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
Preciso de ajuda, pois nao está facil!!!
Aqui vai o codigo:
import java.awt.*;
import javax.swing.JFrame;
import java.awt.geom.*;
public class Triangulo extends Frame{
private float lado = 600; // lado deve ser de no max 1000
public static void main(String[] args)
{
Triangulo novo_painel = new Triangulo();
JFrame frame = new JFrame("Triangulos em java");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.getContentPane().add(novo_painel);
frame.setSize(1000, 500);
frame.setVisible(true);
novo_painel.resize(1024,600); // definicao
novo_painel.show(); // exibir
}
private Point2D.Double pontoMedio(Point2D.Double p1, Point2D.Double p2)
{
Point2D.Double ponto_medio = new Point2D.Double();
ponto_medio.x = (500+500-lado/2)/2;
ponto_medio.y = (50+50+lado*0.866)/2;
return ponto_medio;
}
public void paintComponent(Graphics gfx)
{
//super.paintComponent(gfx);
Graphics2D g = (Graphics2D) gfx;
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
Point2D.Double A = new Point2D.Double(500,50);
Point2D.Double B = new Point2D.Double(500-lado/2,50+lado*0.866);
Point2D.Double C = new Point2D.Double(500+lado/2,50+lado*0.866);
desenhar(g,5,A,B,C);
}
private int desenhar(Graphics2D g, double vezes, Point2D.Double A, Point2D.Double B,Point2D.Double C) {
Line2D.Double linhaAB = new Line2D.Double(A, B);
Line2D.Double linhaAC = new Line2D.Double(A, C);
Line2D.Double linhaBC = new Line2D.Double(B, C);
g.draw(linhaAB);
g.draw(linhaAC);
g.draw(linhaBC);
Point2D.Double npA = new Point2D.Double();
Point2D.Double npB = new Point2D.Double();
Point2D.Double npC = new Point2D.Double();
npA = pontoMedio(A,B);
npB = pontoMedio(A,C);
npC = pontoMedio(B,C);
vezes--;
if (vezes>0) {
return desenhar(g,vezes,npA,npB,npC);
}
else {
return 0;
}
}
}
Se alguem tiver uma ideia sobre como se pode resolver o problema,por favor, ajude!
rdgborba@bol.com.br
Valeu e desde ja obrigado! [/u]