Empezamos con las aplicaciones graficas.. ains
Ejercicio 1
Bueno esta practica al ser la primera de swing los primeros apartados son de reflexion que si has ido a clase ya tan.
5.En la linea frame.setSize(100,50); multiplicas por 4 listos frame.setSize(100*4,50*4);
6.Lo hacemos con este metodo contentPane.setBackground(Color.BLUE);
8. Lo que sucede es que la ventana tarda mucho en salir.
9. Se lanza la ventana y hasta que esta no se cierre no acaba el programa
10. Fuerzas el cierre del programa y eso mata todos los hilos
Ejercicio 2
2.Para ignorar el cierre de la ventana recurrimos en el metodo setDefaultCloseOperation en vez le pasarle como parametro EXIT_ON_CLOSE, DO_NOTHING_ON_CLOSE. Asi que ahora la unica manera de cerrar el programa es Ctrl+c en la consola.
3.Para hacer una ventana sin decoracion ninguna, antes de hacerla visible usamos frame.setUndecorated(true);
4.Para tener la decoracion por defecto tenemos que usar ANTES de crear la ventana (el metodo es static) JFrame.setDefaultLookAndFeelDecorated(true);
Ejercicio 3
1. Copiar HelloWorldGUIColor pero cambiando el color de fondo y el del texto, eso es como antes. ¿Maximizar? no se, aparte de darle al botoncito como hacerlo, se admiten sugerencias, y la pista no me llevo a ningun sitio.
2.Afortunadamente en el API de BorderLayout te viene un ejemplo que es practicamente igual que lo que tienes que hacer.
contentPane.add(labelN, BorderLayout.NORTH);
contentPane.add(labelS, BorderLayout.SOUTH);
contentPane.add(labelE, BorderLayout.EAST);
contentPane.add(labelO, BorderLayout.WEST);
antes hay que crear las etiquetas y modificar el color, naturalmente. Aqui tengo otro problemilla ya que no se me pone el color de fondo.
3.Este y Oeste se quedan centradas(verticalmente) pero Norte y Sur se alinean a la izquierda(horizontalmente). Quiza Este y Oeste tambien pero al ocupar todo el ancho no se nota.
4. Primero se cambia el color que es lo facil y ahora a buscar algo para centrar...afortunadamente encontramos un metodo al que hay que meterle como parametro la constante(¿?) CENTER, asi queda bien: labelN.setHorizontalAlignment(JLabel.CENTER);\\para norte
labelS.setHorizontalAlignment(JLabel.CENTER);\\para sur
5.Hay que copiar el anterior y insertarle una imagen en el centro, a mi no me sale, mi problema es que no se consruir el JLabel con la imagen
6. Otra vez copiar del anterior y añadir
frame.pack();
despues de size
7.8. Para estos dos apartados escribo lo mismo, no me salen me tendre que mirar lo que me tenga que mirar el caso es que no consigo, se agradecen ayudas.
Ejercicio 4
1. Hago todo excepto el borde con el nombre….. aqui va lo que hay.
Primero creamos el JFrame y todo esto como de costumbre, luego creamos un JPanel con un GridLayout
JPanel grid = new JPanel(new GridLayout(20,1));
a continuacion lo rellenamos con etiquetas depende de la posicion su color, con este for:
for(int i= 0; i<20;i++){
JLabel label =new JLabel(“label “+i);
if(i%2==1){
label.setBackground(Color.WHITE);
label.setForeground(Color.BLACK);
}
else{
label.setBackground(Color.BLACK);
label.setForeground(Color.WHITE);
}
grid.add(label);
}
me sigue faltando lo del fondo de antes…
Por ultimo metemos el panel en la ventana
frame.setContentPane(grid);
y lo hacemos visible como siempre.
2. Pues mas o menos es hacer todo lo de antes junto, en una misma ventana. Como ya te dan la estructura indicada en los bordes esa parte ya la tienes pensada. La estructura es un GridLayout de una fila y dos columnas, la de la izquierda es un BorderLayout como el que ya hemos hecho. La primera es otro GridLayout de una columna y tres filas que contiene un FlowLayout, un BoxLayout y un GridBagLayout con etiquetas dentro. Los iremos uniendo con los add() y haciendolos con lo anterior de la practica, no voy a entrar en mas detalles ya que prefiero solucionar las dudas que tengo antes de hacer este.