"Hola Mundo" en java, pero gráfico =)

Topic created · 8 Mensajes · 12065 Visitas
  • (ver hilo: Cómo compilar y ejecutar programas en Java)
    Bueno como llevo unas 6 horas seguidas haciendo java pues ya que estamos... jejeje.

    Quizá no sepáis hacer un hola mundo en java normalito, os comentaré cómo hacerlo, pero después nos centraremos en un Hola Mundo un poco más interesante: un Hola Mundo con interfaz gráfica :icon_cheesygrin:

    Primero empezamos por unos conceptos previos:
    Java es ejemplo de Programación Orientada a Objetos (POO, o en inglés OOP). ¿Esto qué significa? Que para nuestros programas en java todo serán objetos. Así como otros lenguajes se basan en funciones y librerías, nosotros nos basaremos en Clases y en Objetos. Todo objeto es de una clase (el objeto círculo por ejemplo podría ser de la clase figura...).
    No todos los lenguajes siguen este paradigma, C por ejemplo no sabe de objetos (su hermano mayor, C++ sí).
    Hoy en día, el paradigma de orientación a objetos es el más utilizado.

    Pues bien, si no os ha quedado claro lo anterior, no os preocupéis, al menos quedaos con la idea de las Clases y los Objetos.

    Vamos con el hola mundo normal:
    Vamos a crear un archivo llamado "HolaMundo.java", o dicho al estilo java, vamos a crear nuestra clase HolaMundo:

    public class HolaMundo {
    
    
    }
    

    Importante, el nombre de la clase (HolaMundo) debe ser igual que el nombre del archivo (HolaMundo.java). Si no, revienta. Y otro detalle, en java a las clases les ponemos nombres con mayúscula al comienzo, a los objetos de esas clases, con minúscula. Tened cuidado con esto.
    De momento solo hemos declarado una clase vacía, ni siquiera puede ejecutarse puesto que Java nos pide que haya un método Main. Así que vamos a crearlo:

    public class HolaMundo {
    
    	public static void main(String[] args) {
    
    	}
    
    }
    

    (si alguien conoce C seguro q le suena de algo) Ahora tenemos una clase con un main vacío. Si lo ejecutamos no hará nada, pero por lo menos Java sabrá que eso se puede ejecutar.
    Pongamos algo dentro del main:

    public class HolaMundo {
    
    	public static void main(String[] args) {
    		System.out.println("Hola Mundo");
    
    	}
    
    }
    

    Ahora sí ya tiene algo que hacer nuestro main, imprimirá por consola "Hola Mundo".

    Bastante sencillo como se puede ver. Vamos a hacerlo más interesante, hagamos una ventana y que dentro de la ventana se vea el Hola mundo.
    Para ello, iremos paso a paso, dentro del main vamos a poner lo siguiente:

    JFrame miVentana = new JFrame();
    

    Eso crea un objeto de la clase JFrame, y llama a ese objeto "miVentana". A efectos prácticos eso crea una ventana jeje.
    Vamos a ponerle un título a la ventana, para que quede más profesional:

    miVentana.setTitle ("Hola Mundo Grafico");
    

    Ya tenemos ventana, de momento ni siquiera es visible, ni tampoco tiene un tamaño definido, pero ya hay con qué trabajar. Vamos a centrarnos ahora en la forma de colocar un texto (Hola Mundo) en la ventana. Una opción es crear un campo de texto, vamos a ello:

    JTextPane miCampoDeTexto = new JTextPane();
    miCampoDeTexto.setText("HOLA MUNDO");
    

    La primera linea crea un objeto de la Clase JTextPane, y bautiza ese objeto con el nombre miCampoDetexto. La segunda establece el texto que habrá en ese campo.

    Ya tenemos ventana y texto, ahora habrá que meter el texto dentro de la ventana. Por suerte en código esto se dice bastante más rápido xD:

    miVentana.add(miCampoDeTexto);
    

    Sencillo no? A miVentana le añadimos miCampoDeTexto.

    Bien, ya lo tenemos todo, sin embago como dijimos antes, la ventana ni tiene tamaño, ni es visible... Vamos a ponerle unos detallitos:
    1- Le decimos a la ventana lo que debe hacer cuando alguien la cierre: salir del programa.

    miVentana.setDefaultCloseOperation (JFrame.DISPOSE_ON_CLOSE);
    

    2- Establecemos que el tamaño de la ventana sea el mínimo necesario para que se vea lo que hemos metido dentro:

    miVentana.pack();
    

    3- Le decimos que la ventana debe ser visible

    miVentana.setVisible(true);
    

    Y por último, un par de líneas al comienzo del archivo que le dicen a Java dónde están las clases JFrame, JTextPane y todo eso (algo así como las librerías).

    import javax.swing.JFrame;
    import javax.swing.JTextPane;
    

    Todo listo por fin, podéis revisar el código completo por si se os olvida algo

    import javax.swing.JFrame;
    import javax.swing.JTextPane;
    
    
    public class HolaMundoGrafico {
    
    	public static void main(String[] args) {
    		//Creamos una ventana
    		JFrame miVentana = new JFrame();
    		miVentana.setTitle ("Hola Mundo Grafico"); //le ponemos título a nuestra ventana
    		//Creamos un campo de texto
    		JTextPane miCampoDeTexto = new JTextPane();
    		miCampoDeTexto.setText("HOLA MUNDO");
    		//ahora metemos el campo de texto en la ventana
    		miVentana.add(miCampoDeTexto);
    		
    		//Detalles importantes
    		//1- le decimos a la ventana que cierre el programa si alguien pulsa la X de cierre
    		miVentana.setDefaultCloseOperation (JFrame.DISPOSE_ON_CLOSE);
    		//2- ponemos como tamaño de ventana el mínimo necesario para que se vea todo lo que contiene
    		miVentana.pack();
    		//3- decimos que la ventana sea visible
    		miVentana.setVisible(true);
    		
    	}
    
    }
    

    Compilad, ejecutad y podréis ver vuestra ventanita diciendo HolaMundo 😃
    [attachment=0]

    Seguramente como programa no tiene un gan futuro, pero como "Hola Mundo" es insuperable :icon_mrgreen:
    Es para que veáis una de las cosas más interesantes de java, que es toda la parte gráfica.
    Ya iremos viendo más cosas.

    [licencia][/licencia]

  • ...
    M estas diciendo que para que diga "HOLA MUNDO" hay que hacer todo eso??? jaja
    Y que utilidad tiene?? xDD jaja y cuando alguien lo ve te pone las veces que se ha visto??

    P.D.: JAJAJA!! tengo que hacerme uno para la firma, que ponga "HOLA UNIVERSOJUEGOS!!"

  • :icon_eek: muy buena guia salvatore y muy buena explicacion en cuanto pueda yo tambien hare , pero esta vez con otro mensaje xDD 😛

    saludos

  • jajaja sí, hay que poner toodo eso xD
    aunque hombre, si quitas comentarios y espacios, el código final tampoco es para tanto:

    import javax.swing.JFrame;
    import javax.swing.JTextPane;
    
    public class HolaMundoGrafico {
       public static void main(String[] args) {
          JFrame miVentana = new JFrame();
          miVentana.setTitle ("Hola Mundo Grafico");
          JTextPane miCampoDeTexto = new JTextPane();
          miCampoDeTexto.setText("HOLA MUNDO");
          miVentana.add(miCampoDeTexto);
          
          miVentana.setDefaultCloseOperation (JFrame.DISPOSE_ON_CLOSE);
          miVentana.pack();
          miVentana.setVisible(true);
       }
    }
    

    Son 8 instrucciones de na... teniendo en cuenta que es un hola mundo gráfico es bastante poco.
    Es un programa totalmente inútil, pero siempre que se aprende un lenguaje uno empieza por crear el programa más sencillo posible. Lo normal es hacer un "Hola Mundo", que es un programa que muestra de alguna forma "Hola Mundo".
    Puedes buscar Hola Mundo en pascal, en C, en PHP... saldrán miles. Y su único propósito es didáctico. No valen para más.
    A diferencia de otros lenguajes, java es capaz de crear entornos gráficos, y es por eso que quise hacer un primer entorno gráfico en java.

    A partir de ahí puedes hacer miles de cosas, incluso juegos para el móvil. Yo aun no he hecho ninguno, os aviso.

  • Muy buen aporte, pero una pregunta... ¿No es más fácil utilizar visualbasic para eso? Con un simple MsgBox("Hola mundo") basta... xD
    Osea, me refiero a que para que complicarse tanto usando java...

  • normalmente cuanto más fácil es hacer algo en un lenguaje, más difícil es hacer eso mismo pero con alguna variación. O dicho de otra forma, cuanto más bajo sea el nivel, mayor "dificultad" pero mayor capacidad de modificación.

    el ejemplo se podría haber hecho con showMessageDialog, más cortito pero mucho menos extensible. El ejemplo que he hecho crea una ventana, es decir, lo más elemental de una interfaz gráfica. Sobre eso se puede poner de todo, en cambio en un msgbox no.

    De todas formas como digo buscar la sencillez en todos los lenguajes no tiene sentido. C++ tampoco tiene la facilidad de un lenguaje tipo script, y sin embargo es la base de todo el sistema linux. Java tiene la potencia de ser compatible con todo sistema donde haya máquina virtual java, incluso teléfonos móviles, y tener una excelente capacidad gráfica. A cambio no puede competir con la sencillez de un lenguaje tipo script.

    Cada lenguaje tiene su fuerte.

  • A mi Java siempre me ha gustado, pero me da palo empezar con el, supongo que podría hacer programitas para moviles, que mi hermano sabe xD
    Lo bueno de Java, es como bien dicho que es compatible sin SYMBIAN y para móviles viene especial. Aparte de que muchos de sus comandos son en español. Por ejemplo.
    miVentana.add, eso sería que agrega una ventana nueva el proyecto, corrigeme si me equivoco, en cambio para C++ o VB2008 para hacerlo manual sin agregar un form, se tiene que poner.
    Dim as a new windows = form1.newform (creo)
    y es algo mas complejo, por lo demás me parece un poco mas sencillo en el lenguaje el Java, pero algo mas dificil de ordenar las cosas.

  • no es que sea en español, miVentana es un objeto que he creado yo, y por tanto le doy el nombre que quiera. En este caso como es un objeto de la clase "JFrame" (marco, o ventana) pues le llamé miVentana.
    Java se basa en clases, la clase JFrame por ejemplo, o la clase JButton... y con esas clases tu puedes hacer objetos de ese tipo.
    Tan sencillo como hacer: new JFrame()

    Y lo mejor es que tú puedes crear clases nuevas, y usarlas exactamente igual que las que trae java hechas. Y lo que es más importante, las clases pueden ampliarse, retocarse, etc. Es un sistema de programación de lo más potente, la orientación a objetos famosa.