domingo, 3 de abril de 2011

Definición de componentes en un Frame Swing Java (11.02.02)

- Los componentes de la ventana se crean en como atributos de la clase CelsiusContent. - Se tratara en 2.3. el componente JTextField
- Se crea un objeto botonConvertir con la clase Jbutton. El constructor define el texto del boton.
- Se crea un objeto celsiusLabel y fahrenheitLabel con la clase JLabel. El constructor define el texto del label asi como el alineamiento de este texto mediante SwingConstants.LEFT
- El LayoutManager define la forma como se organizaran los componentes en el panel
- Se crea el panel que contendrá los componentes con la clase JPanel.
- Se agregan los componentes al panel con el método add: panel.add(Componente).
- Para agregar bordes a los elementos swing se usa el método setBorder, cuya argumento es un borde creado con el método createEmptyBorder
- Este método recibe como argumentos los bordes en píxeles arriba, izquierda, abajo y derecha
- Se aplica bordes a los elementos celsiusLabel, fahrenheitLabel y panel



public class CelsiusContent {
    //Componentes de la aplicacion.
    private JTextField celsiusInput;
    private JButton    botonConvertir;
    private JLabel     celsiusLabel;
    private JLabel     fahrenheitLabel;

    private Component crearComponentes() {
        //Creando los componentes de la ventana
        celsiusInput    = new JTextField(3);
        botonConvertir  = new JButton("Convertir");
        celsiusLabel    = new JLabel("Celsius", SwingConstants.LEFT);
        fahrenheitLabel = new JLabel("Fahrenheit",
                                                SwingConstants.LEFT);

        //Se crea un layout para los componentes del panel
        LayoutManager layout = new GridLayout(2, 2);
        //LayoutManager layout = new FlowLayout();

        //crear y configurar el panel contenedor de la ventana.       
        JPanel panel = new JPanel(layout);

        //agregar los componentes al contenedor.
        panel.add(celsiusInput);
        panel.add(celsiusLabel);
        panel.add(botonConvertir);
        panel.add(fahrenheitLabel);
       
        //agregar un borde vacio alrededor de los labels
        celsiusLabel.setBorder(
                        BorderFactory.createEmptyBorder(5,5,5,5));
        fahrenheitLabel.setBorder(
                        BorderFactory.createEmptyBorder(5,5,5,5));

        //agregar un borde vacio alrededor
        //de los componentes de 5 pixeles.
        panel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));

        return panel;
    }
}
Compartir:

0 comentarios:

Publicar un comentario