Seguidores

MIS WEBS



miércoles, 21 de febrero de 2018

EJERCICIOS CON DISEÑOS MARCOS JAVA


Ayer realizamos un ejercicio en el que creábamos un marco al que incluíamos unos botones utilizando para ello dos layout diferentes que uníamos en un solo marco consiguiendo nuestra propia calculadora. Bueno pues hoy se me ocurrió complicarme las cosas, que seguramente es la única forma de aprender algo.


Decidí cargar los datos en la lámina utilizando un array. Y en Lugar del setBounds para dar tamaño al cuadro utilizar pack(), que le dará tamaño de forma automática. Así de paso repaso materia que ya vi al principio. Puede que el resultado no sea ni mejor ni peor ya que no consigo reducir código pero todos los caminos llevan al mismo punto ¿no?. Y  ya de paso practico código que es la única forma de aprender a programar. Machacar una vez tras otra código.


import java.awt.*;
import javax.swing.*;
public class otroEjemplodelayout {
             public static void main (String[] asgs) {
    (new Marco123456789()).setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                    (new Marco123456789()).setVisible(true);      
             }
}
             class Panel extends JPanel{
             public Panel() {
                    setLayout(new GridLayout(9,4));
                    //creamos un array con los botones
                    JButton Botones_Calculo[] = {    
new JButton("0"),new JButton("1"),new JButton("2"),new JButton("3"),
new JButton("4"),new JButton("5"),new JButton("6"),new JButton("7"),
new JButton("8"),new JButton("9"),new JButton("+"),new JButton("-"),
new JButton("/"),new JButton("*"),new JButton("=")
                                               };    
            //utilizamos un for each para cargar los botones en la lamina
                                  int n=0;
                                  for (JButton i:Botones_Calculo) {
                                  add(Botones_Calculo[n]);
                                  n++;  
                                        }
             }
       }
       class Consola extends JPanel{
             public Consola(){  
             JTextField cuadro_texto =new JTextField ("0",15);
             cuadro_texto.setBackground(Color.magenta);
             cuadro_texto.setFont(new Font("Arial Black",Font.BOLD,25));
             add(cuadro_texto);
             }
       }
class Marco123456789 extends JFrame{
       public Marco123456789() {
             setTitle("Practica");     
             Panel Panel_de_cuerpo =new Panel();
             Consola zona_calculo = new Consola();

             //combinamos las dos laminas en un frame
             add(zona_calculo, BorderLayout.NORTH);
             add(Panel_de_cuerpo, BorderLayout.CENTER);

         /*el metodo pack() da tamaño de forma automática a nuestro cuadro
          * con el taño del conjunto de los objetos que lo componen
          */
             pack();
            
       }
}


No hay comentarios:

Publicar un comentario

Buscar este blog

Sandisk y Western Digital