Jim Fox
20-09-2008, 17:22
E' già la seconda volta che mi succede e nn riesco a capire il motivo. Vi spiego...
Generalmente uso come IDE JCreator e devo dire che mi ci trovo proprio bene. Però succede che nel momento in cui vado a compilare il mio progetto, mi da un errore strano sul main, mentre copiando lo stesso progetto su JBuilder, funziona tutto correttamente.
Sotto vi riporto il programma incriminato, dove devo creare due quadrati colorati e visualizzarli in un frame, usando due classi, una "TwoSquareViewer" e una "TwoSquareComponent". Eccolo:
file TwoSquareComponent
import java.awt.Rectangle;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Color;
import java.awt.*;
import javax.swing.JComponent;
public class TwoSquareComponent extends JComponent
{
public void paintComponent(Graphics g)
{
Graphics2D g2 = (Graphics2D) g; // recupero Graphics2D
Rectangle box1 = new Rectangle(10, 10, 100, 100); // creo il primo quadrato
Rectangle box2 = new Rectangle(50, 50, 100, 100); // creo il secondo quadrato
g2.setColor(Color.PINK);
g2.fill(box1);
g2.setColor(Color.BLUE);
g2.fill(box2);
}
}
file TwoSquareViewer
import javax.swing.JFrame;
public class TwoSquareViewer
{
public static void main(String[] args)
{
JFrame frame = new JFrame();
frame.setSize(600, 800);
frame.setTitle("DUE QUADRATI COLORATI");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
TwoSquareComponent component = new TwoSquareComponent();
frame.add(component);
frame.setVisible(true);
}
}
Come dicevo, su JBuilder funziona correttamente, mentre su JCreator, durante la compilazione, mi da il seguente errore:
java.lang.NoClassDefFoundError: DueQuadrati
Caused by: java.lang.ClassNotFoundException: DueQuadrati
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: DueQuadrati. Program will exit.
Exception in thread "main"
Per quale motivo, secondo voi? :(
Generalmente uso come IDE JCreator e devo dire che mi ci trovo proprio bene. Però succede che nel momento in cui vado a compilare il mio progetto, mi da un errore strano sul main, mentre copiando lo stesso progetto su JBuilder, funziona tutto correttamente.
Sotto vi riporto il programma incriminato, dove devo creare due quadrati colorati e visualizzarli in un frame, usando due classi, una "TwoSquareViewer" e una "TwoSquareComponent". Eccolo:
file TwoSquareComponent
import java.awt.Rectangle;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Color;
import java.awt.*;
import javax.swing.JComponent;
public class TwoSquareComponent extends JComponent
{
public void paintComponent(Graphics g)
{
Graphics2D g2 = (Graphics2D) g; // recupero Graphics2D
Rectangle box1 = new Rectangle(10, 10, 100, 100); // creo il primo quadrato
Rectangle box2 = new Rectangle(50, 50, 100, 100); // creo il secondo quadrato
g2.setColor(Color.PINK);
g2.fill(box1);
g2.setColor(Color.BLUE);
g2.fill(box2);
}
}
file TwoSquareViewer
import javax.swing.JFrame;
public class TwoSquareViewer
{
public static void main(String[] args)
{
JFrame frame = new JFrame();
frame.setSize(600, 800);
frame.setTitle("DUE QUADRATI COLORATI");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
TwoSquareComponent component = new TwoSquareComponent();
frame.add(component);
frame.setVisible(true);
}
}
Come dicevo, su JBuilder funziona correttamente, mentre su JCreator, durante la compilazione, mi da il seguente errore:
java.lang.NoClassDefFoundError: DueQuadrati
Caused by: java.lang.ClassNotFoundException: DueQuadrati
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: DueQuadrati. Program will exit.
Exception in thread "main"
Per quale motivo, secondo voi? :(