¿Qué hay de nuevo amigos?, este comentario lo hemos acelerado  un poco para poder disfrutar del puente.

Pues ya hemos empezado con Swing, aunque imagino que el que lleve el juego un poco avanzado ya se habrá visto en la necesidad de empezar a usarlo, pero bueno vamos a comentar la práctica.

Tras una serie de comentarios sobre la importancia de poder disponer de una representación gráfica que interactúe con el usuario y los casos en los que esta puede no ser necesaria e incluso perjudicial pasamos a los ejercicios que se nos pide.

 

EJERCICIO_1

            Debemos copiar este texto y compilarlo veremos como aparece una etiqueta de texto en un JFrame, (muy simple), a comentar:

                En la calse “HelloWorldGUIColor”, tener en cuenta que debemos importar la clase Color, de “java.awt.color”, nosotros recomendamos importar “ java.awt.*   y javax.swing.* “ . También nos piden introducir un texto ( Try—catch) entre setSize y setVisible, lo que ocurrirá es que se retrasará en este caso 10 segundos la aparición de la imagen en pantalla.

¿Porque tenemos que hacer este casting?                                                     

JPanel contentPane = (JPanel) frame.getContentPane();

 

java.lang.Object
  java.awt.Component                  
  java.awt.Container
  java.awt.Window   
  java.awt.Frame
            
   javax.swing.JFrame

 

java.lang.Object
  java.awt.Component
  java.awt.Container      
  javax.swing.JComponent
      
  javax.swing.JPanel

 

Esta es la razón de porqué debemos realizar el casting (JPanel), ya que getContentPane nos devuelve un container.

       (imaginaros una flecha ascendente en el primer cuadro y una descendente el el segundo, los problemas del word)

 

EJERCICIO_2

              Tenemos que entender los diferentes métodos del manejador de ventanas del JFrame, a Comentar:

              Si no incluimos “setDefaultCloseOperation()”, pulsando el aspa desaparecerá la pantalla pero el programa seguirá ejecutándose debemos pulsar “ Control+ C “. Si ponemos “setUndecorated(true)” no tendremos el marco del frame con su aspa, ni minimizar y maximizar pantalla, por lo que para cerrar la ejecución de esta clase deberemos recurrir a “ Control+ C “.

Para el punto 4. un consejo el método:

 JFrame.setDefaultLookAndFeelDecorated(boolean b);

Lo debemos poner antes de crear el frame, si lo ponemos después no afecta sobre la ventana, NO se porque ocurre esto, si alguien lo tiene claro y quiere dejar un post explicándolo se lo agradeceríamos.

           

EJERCICIO 3

Vamos a ver como podemos ordenar varios componentes dentro de  un contenedor veremos que hay una forma manual (desaconsejable) y una forma automática a través de diferentes Layout; para tener acceso de forma rápida en el API a los diferentes Layout, buscar en All Clases, la clase LayoutManager, este Interface nos dará acceso al resto de Layout.

                La forma manual “NO COMENT”.

                Utilizaremos la forma automática manejando los diferentes Layouts que nos proporciona Java, podremos poner paneles sobre otros paneles con diferentes Layout, así conseguiremos las presentaciones deseadas.

Para centrar las etiquetas   label.setHorizontalAlignment(label.CENTER);

De los puntos 7. y 8. , comentar que el método  getScreenSize(), devuelve unas dimensiones ( ancho,alto), debemos crear una variable Dimension dimension; la cual recogerá lo que nos devuelva getScreenSize(), luego debemos tener dos variable ancho y alto de la pantalla que tomarán sus valores de dimension.getWidth()…..; OJO tenemos que hacer un casting “  = (int) dimension.getWidth(); “.

 

 

EJERCICIO 4

             Para este ejercicio hemos utilizado un GridLayout (20,1) de 20 filas y una columna si pones (20,0) también funciona, con un bucle for a la vez  que crea las etiquetas compara  si es par o impar y le da el formato apropiado. Tenemos que importar para crear los bordes:

import javax.swing.border.TitledBorder;

     import javax.swing.border.LineBorder;

             El último ejercicio consiste en utilizar todos los Layout vistos, para conseguir esta apariencia tenemos que hacerlo con orden y tener claro que va dentro de que. Espero no haberos aburrido mucho con el comentario y os veo después del puente.