Foro sobre Java SE > Problemas con los comandos 'import'
Si tienes alguna línea en blanco, en medio de los imports, bórrala a ver si así te desaparece el problema.
En principio no, lo probé de varias maneras y ahora lo tengo empezado desde la primera línea. También cogí prestado un código ya escrito de una web que aparentemente tendria que funcionar pero me sale el mismo error. El código es el siguiente:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Demo1 extends JComponent {
private final static int ANCHO = 512;
private final static int ALTO = 384;
private final static int DIAMETRO = 20;
private float x, y;
private float vx, vy;
public Demo1() {
setPreferredSize(new Dimension(ANCHO, ALTO));
x = 10;
y = 20;
vx = 300;
vy = 400;
}
private void fisica(float dt) {
x += vx * dt;
y += vy * dt;
if (vx < 0 && x <= 0 || vx > 0 && x + DIAMETRO >= ANCHO)
vx = -vx;
if (vy < 0 && y < 0 || vy > 0 && y + DIAMETRO >= ALTO)
vy = -vy;
}
public void paint(Graphics g) {
g.setColor(Color.WHITE);
g.fillRect(0, 0, ANCHO, ALTO);
g.setColor(Color.RED);
g.fillOval(Math.round(x), Math.round(y), DIAMETRO, DIAMETRO);
}
private void dibuja() throws Exception {
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
paintImmediately(0, 0, ANCHO, ALTO);
}
});
}
public void cicloPrincipalJuego() throws Exception {
long tiempoViejo = System.nanoTime();
while (true) {
long tiempoNuevo = System.nanoTime();
float dt = (tiempoNuevo - tiempoViejo) / 1000000000f;
tiempoViejo = tiempoNuevo;
fisica(dt);
dibuja();
}
}
public static void main(String[] args) throws Exception {
JFrame jf = new JFrame("Demo1");
jf.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
jf.setResizable(false);
Demo1 demo1 = new Demo1();
jf.getContentPane().add(demo1);
jf.pack();
jf.setVisible(true);
demo1.cicloPrincipalJuego();
}
}
-He probado poniendo package Demo1; (que es como se llama el archivo) en la primera línea antes de los imports y tampoco. Algo se me escapa y con lo verde que estoy puede ser cualquier cosa xD
Estoy casi seguro de que se trata de un bug de NetBeans. He visto alguno documentado en la base de datos de bugs muy similar al que tienes.
También es mala suerte que recién empiezas, te tropiezas con un bug ;D
Mira en Options de NetBeans, en Hints, a ver si puedes eliminar la comprobación de Hints relativo a los imports (estoy usando NetBeans 7.2 beta, y no recuerdo exactamente dónde está lo que te propongo que hagas)
También puedes intentar eliminar todos los imports, e irlos importando uno a uno, a partir de cada línea de código.
La has clavado choces! Quité el import de los Hints y se fue el error, pero el maldito código sigue sin abrise xD Me sale esto en el Output:
run:
java.lang.NoClassDefFoundError: demo1/Demo1 (wrong name: Demo1/Demo1)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:480)
Exception in thread "main" Java Result: 1
BUILD SUCCESSFUL (total time: 9 seconds)
Crees que deberia poner una linea de public main; justo después de los imports o estoy yendome por las ramas?? Lo único que me ha quedado son 3 Warnings del tipo:
Add @Override Annotation
con una flechita al lado que poner:
Multiple annotations here
Con las ordenes paint, run y windowClosing subrayadas en amarillo.
Muchas gracias por la ayuda y saludos!
He copiado tu código tal cual y... ¡Me sale una bola roja botando en medio de una ventana! :D
No sé por qué te sale ese error, pero seguro que no es a causa del código en sí. Tal vez tengas algún lío de nombres en los packages de tu proyecto.
Paciencia, ¡Que no se hizo NetBeans en una hora! ;)
Es k esto d k este todo aparentemente bien pero k no vaya me frustra k no veas..
Has puesto el código tal cual y t a salido la pelota?? Yo en la primera linea solo pongo:
package Demo1;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
No tengo que poner nada más? Creo que me voy a bajar otra version de Netbeans haber si hay suerte jej
una sugerencia. Entra a las opciones de netbeans. pone por default todo y probá
Lo que te sale no es un error, es un simple aviso.
Solucionarlo es muy facil. Pon los imports que has eliminado y situa el cursor sobre la primera linea de los imports, que tendra el aviso a la izquierda.
Si pulsas ALT-INTRO se desplegara una ventana. Pulsa sobre Organize imports y NetBeans te colocara los imports tan cual estan definidos en las opciones.
Salut
@Paposo
Es un bug que apareció en las versiones 7.x en diversas formas.
http://netbeans.org/bugzilla/show_bug.cgi?id=201818
Bueno, después de pelearme un rato más con el Netbeans al fin he conseguido que aparezca la maldita bola.
Como no podia ser de otra forma el error ha sido de novato y lo voy a comentar para que en la posteridad quede para futuros novatos xD
La solución ha sido tan básica como cambiar una Mayuscula por una Minúscula. Cómo título del proyecto puse Demo1 y entrando el package como Demo1 no me arrancaba ni a patadas. Hasta que me fije que la subcarpeta de Java Source Package estaba nombrada como demo1 en minúscula.
Ha sido cambiar "package Demo1;" por "package demo1;" y la cosa ha resultado.
En fin, que por tonterias como esa uno va aprendiendo xD
Gracias a todos por el apoyo, me vereis más a menudo pk ya le estoy piyando el gustillo a esto jej
Al final había "un lío de nombres" con los packages ;D
No te preocupes, que a quien no le haya pasado... es que no ha fregado un plato ;)
creo q el tema fue que netbeans no fue muy amigable con su mensaje de error. me pasa de seguido. Algunos de sus mensajes no dan una idea clara del error. Sino que te dicen cualquiera como esta vez... cuando algo así pasa, ya se que tengo que ir por otro lado a averiguar
Si el error que mostraba era "Import section does not correspond to the specified code style rules" tal como decia al principio, es evidente que es un bug de NetBeans, porque ese mensaje es el aviso que da cuando los imports no estan conforme al estilo de escritura definido en las opciones. En absoluto tiene nada que ver con un error en el nombre de un package.
Eso no es ser poco amigable, eso es engañar con alevosia! :)
Claro que no fue amigable... ¡Se trata de un bug! ;D
Aparte del bug de los Hints, había otro más escondido en la denominación del package.
Ese bug ya está resuelto en la versión 7.2, aunque todavía es una beta. Probablemente hacia finales de mes, o principios del que viene, se lanzará la versión GA.
@emas
El equipo de desarrollo de NetBeans sí que es muy amigable, en concreto el "padre" de los Hints, Jan Lahoda.
Si algún mensaje no está claro, puedes abrir un bug tranquilamente, documentar el mensaje, y lo que crees que debería decir.
Me estoy iniciando en esto del lenguaje java y llevo un par de dias encallado con un error que me da Netbeans 7.1.2 siempre que intento insertar comandos import. El error es el siguiente:
"Import section does not correspond to the specified code style rules"
Alguien sabe si antes de ejecutar estos comandos tengo que instalar los paquetes estandar para importar o algo?