¿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.
Abril 30, 2008 a las 9:28 am
Acerca de lo del look and feel. El otro día explicaron algo así… si pones JFrame. tal tal tal significa que a todos los JFrames que hagas los vas a querer con ese look and feel, sin embargo si solo quieres uno en vez de poner JFrame tienes que poner el propio frame. Algo en plan JFrame frame = new Jframe(); frame.setDefaultLookAndFeelDecorated (boolean b);
de esa forma SOLO ese frame saldrá con el look and feel.
Mayo 13, 2008 a las 4:49 pm
Esto es llevar al día los post! sois una buena referencia para mi…vosotros no aburris!:P