Cual es el error de este codigo, me dice esto al correrto (Error: no se ha encontrado o cargado la clase principal gui101.GUI1)
package gui101;
import javax.swing.*;
import java.awt.event.*;
class ButtonOKListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, "OK Button Clicked");
}
}
public class Main extends JFrame {
//
JButton btnOK;
JPanel pnlHolder;
ButtonOKListener btnOKListener;
public Main() {
pnlHolder = new JPanel();
btnOKListener = new ButtonOKListener();
btnOK = new JButton("OK");
btnOK.addActionListener(btnOKListener);
pnlHolder.add(btnOK);
this.add(pnlHolder);
}
public static void main(String[] args) {
Main GUI = new Main();
GUI.setTitle("Graphical User Interface");
GUI.setSize(300, 200);
GUI.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GUI.setVisible(true);
}
}
- Inicie sesión o regístrese para enviar comentarios
Clase principal
La clase principal debe ser Main.java pero tal vez por suposición pienso que guardaste el archivo como ButtonOKListener.java (que es la interface) , por eso no encuentra la clase.
Main.java
ButtonOKListener.java
Gracias... haber si entendi...
Entonces este codigo (public class Main extends JFrame {) no va hai... y lo que pusiste en ButtonOKListener.java se salva por separado???
Disculpa esque soy muy nueva en esto y me quedan algunas dudas...el Main lo definiste al principio para que lo tome como la clase principal???
por que al cambiar el codigo de la clase somo tu me lo mencionas me aparece algo asi cuando compilo:
init:
Deleting: C:\Users\adriana\Documents\NetBeansProjects\GUI101\build\built-jar.properties
deps-jar:
Updating property file: C:\Users\adriana\Documents\NetBeansProjects\GUI101\build\built-jar.properties
Compiling 1 source file to C:\Users\adriana\Documents\NetBeansProjects\GUI101\build\classes
C:\Users\adriana\Documents\NetBeansProjects\GUI101\src\gui101\Gui101.java:5: error: class Main is public, should be declared in a file named Main.java
public class Main extends JFrame {
1 error
C:\Users\adriana\Documents\NetBeansProjects\GUI101\nbproject\build-impl.xml:628: The following error occurred while executing this line:
C:\Users\adriana\Documents\NetBeansProjects\GUI101\nbproject\build-impl.xml:246: Compile failed; see the compiler error output for details.
BUILD FAILED (total time: 0 seconds)
Mil gracias por la ayuda en verdad te agradezco mucho... :)
Las clases publicas
Lo que @Sr. Negativo te dice es que seguramente guardaste tu archivo con el nombre ButtonOKListener.java . Cuando tu clase principal ( donde tienes tu método main) es Main.java. Y es así como se debe de llamar tu archivo.
No importa donde coloques el código. Puede estar al inicio o al final. Lo que importa es que si en tu archivo vas a crear mas de una clase, solo una debe ser publica ( public). Y el nombre de tu archivo fuente debe ser el mismo que el de tu clase publica.
El problema aquí surge cuando le has cambiado el nombre de Main a ButtonOKListener, y el compilador detecto que el archivo no tenia el mismo nombre que la clase publica.
Te coloco un ejemplo sencillo. Una clase con un método que imprime un mensaje. Y una segunda clase que crea una instancia de la anterior para utilizar el método.
Para poder compilar y ejecutar este código el archivo fuente se debe llamar como la clase publica contenida en el mismo, la cual es LLamarClaseImprimir.
Ciao.
Edito: Ya revise mejor tu salida de compilación. Tu nombre de archivo es Gui101.java . Aquí la linea donde se indica.
C:\Users\adriana\Documents\NetBeansProjects\GUI101\src\gui101\Gui101.java:5: error: class Main is public, should be declared in a file named Main.java. Cambia el nombre Gui101.java por Main.java. Y todo listo.
Prueva
Se que suena un poco tonto pero intenta quitandole el nombre del paquete
package gui101;
luego vuelve ha compilar.
Me havisas si fue eso y suerte
Mmmm no al hacer esto aun
Mmmm no al hacer esto aun manda el mismo mensaje... pero mil gracias
De antemano mil gracias por
De antemano mil gracias por la ayuda, pero aun no quiere correr, cambien el nombre del archivo y verifique lo de las lases que me comentabas deje el codigo de la siguiente manera:
package main;
import javax.swing.*;
import java.awt.event.*;
public class Main extends JFrame {
JButton btnOK;
JPanel pnlHolder;
ButtonOKListener btnOKListener;
class ButtonOKListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, "OK Button Clicked");
}
}
public Main() {
pnlHolder = new JPanel();
btnOKListener = new ButtonOKListener();
btnOK = new JButton("OK");
btnOK.addActionListener(btnOKListener);
pnlHolder.add(btnOK);
this.add(pnlHolder);
}
public static void Main(String[] args) {
Main GUI = new Main();
GUI.setTitle("Graphical User Interface");
GUI.setSize(300, 200);
GUI.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GUI.setVisible(true);
}
}
ya me deja compilarlo sin ningun problema el problema es que cuando lo corro me arroja una ventana que dice
No main classes found
Crees que pueda ser por el nombre del archivo fuente?? el archivo se llama Main.java...
Gracias mil gracias...
Error en Swing ... si funciona el código
Si funciona el código
Compila la primero la clase ButtonOKListener y después la Main.java.
0_o
Si, pues si corre.
Desde mi comentario anterior, comprobé que el código no tiene ningún error.
Mira, haz lo siguiente.
Acá, una imagen de como queda.
Uploaded with ImageShack.us
Perdón por la imagen tan grande, pero era para asegurar de que la viera bien @Adriana_Mendoza_santillan.
Como tip, cuando compilas en varios archivos, el ultimo en compilar debe ser el que contiene el método main de la aplicación.