// // java1332.java // Copyright (c) 1998, Agustin Froufe // Todos los derechos reservados. // // No se asume ninguna responsabilidad por el uso o alteracion de este // software. Este software se proporciona COMO ES, sin garantia de ningun // tipo de su funcionamiento y en ningun caso sera el autor responsable de // daños o perjuicios que se deriven del mal uso del software, aun cuando // este haya sido notificado de la posibilidad de dicho daño. // // Compilador: javac 1.1.6 // Autor: Agustin Froufe // Creacion: 24-Jul-1998 12:00:30 // //-------------------------------------------------------------------------- // Esta informacion no es necesariamente definitiva y esta sujeta a cambios // que pueden ser incorporados en cualquier momento, sin avisar. //-------------------------------------------------------------------------- /** * Este ejemplo es el que se va a utilizar para indicar cómo se pueden * manipular las distintas características que son configurables en el * GridBagLayout. Los campos de Nombre, Direccion y Comentarios son de * adorno, porque lo que se va a manipular en las diferentes versiones * del ejemplo que se van a realizar, son las características que afectan * a los botones de Aceptar y Cancelar situados en la parte inferior de * la ventana. */ import java.awt.*; import java.awt.event.*; public class java1332 extends Frame { Panel panel; public java1332() { // Estos son los botones que se van a marear Button botAceptar,botCancelar; // Este es el panel que contiene a todos los componentes panel = new Panel(); panel.setBackground( Color.white ); add( panel ); // Se crean los objetos del GridBag y se le asigna este // layout al panel GridBagConstraints gbc = new GridBagConstraints(); GridBagLayout gridbag = new GridBagLayout(); panel.setLayout( gridbag ); // Se indica que los componentes pueden rellenar la zona // visible en cualquiera de las dos direcciones, vertical // u horizontal gbc.fill = GridBagConstraints.BOTH; // Se redimensionan las columnas y se mantiene su relación // de aspecto isgual en todo el proceso gbc.weightx = 1.0; // Se crea la etiqueta que va a servir de título al // panel Label labTitulo = new Label( "GridBag Layout" ); labTitulo.setAlignment( Label.CENTER ); // Se hace que el componente Label sea el único que se // sitúe en la línea que lo contiene gbc.gridwidth = GridBagConstraints.REMAINDER; // Se pasan al layout tanto el componente Label, como // el objeto GridBagConstraints que modifica su // posicionamiento gridbag.setConstraints( labTitulo,gbc ); // Finalmente se añade la etiqueta al panel. El objeto // GridBagConstraints de este contenedor pone la etiqueta // en una línea, la redimensiona para que ocupe toda la // fila de la tabla, tanto horizontal como verticalmente, // y hace que las columnas se redimensionen de la misma // forma cuando la ventana cambie de tamaño panel.add( labTitulo ); // Ahora se crea uno de los campos de texto, en este // caso para recoger un supuesto nombre TextField txtNombre = new TextField( "Nombre:",25 ); // Se hace que el campo de texto sea el siguiente objeto // después del último que haya en la fila. Esto significa // que todavía se puede añadir uno o más componentes a // la fila, a continuación del campo de texto gbc.gridwidth = GridBagConstraints.RELATIVE; // Se pasan al layout tanto el campo de texto, como // el objeto GridBagConstraints que modifica su // posicionamiento gridbag.setConstraints( txtNombre,gbc ); // Se añade el campo de texto al panel panel.add( txtNombre ); // Se crea otro campo de texto, en este caso para recoger // la direccion del propietario del nombre anterior TextField txtDireccion = new TextField( "Direccion:",25 ); // Se hace que este campo de texto sea el último // componente que se sitúe en la fila en que se // encuentre gbc.gridwidth = GridBagConstraints.REMAINDER; // Se pasan al layout tanto el campo de texto, como // el objeto GridBagConstraints que modifica su // posicionamiento gridbag.setConstraints( txtDireccion,gbc ); // Se añade el campo de texto al panel panel.add( txtDireccion ); // Se crea un área de texto para introducir las cosas // que quiera el que esté utilizando el programa TextArea txtComent = new TextArea( 3,25 ); txtComent.setEditable( true ); txtComent.setText( "Comentarios:" ); // Se pasan al layout tanto el área de texto, como // el objeto GridBagConstraints que modifica su // posicionamiento gridbag.setConstraints( txtComent,gbc ); // Se añade el área de texto al panel panel.add( txtComent ); // Estos son los dos botones de la parte inferior del // panel, sobre los que vamos a modificar las // propiedades del objeto GridBagConstraints que // controla su posicionamiento dentro del panel, para // ir mostrando el comportamiento del conjunto ante // esos cambios botAceptar = new Button( "Aceptar" ); botCancelar = new Button( "Cancelar" ); // Hacemos que el botón "Aceptar" no sea el último // de la fila y que no pueda expandirse en ninguna // dirección gbc.fill = GridBagConstraints.NONE; gbc.gridwidth = GridBagConstraints.RELATIVE; // Se pasan al layout el botón y el objeto // GridBagConstraints gridbag.setConstraints( botAceptar,gbc ); // Se añade el botón al panel panel.add( botAceptar ); // Se hace que el botón "Cancelar" sea el último de // la fila en que se encuentre gbc.gridwidth = GridBagConstraints.RELATIVE; // Se hace que su altura no se reescale gbc.gridheight = 1; // Se pasan al layout el botón y el objeto // GridBagConstraints gridbag.setConstraints( botCancelar,gbc ); // Se añade el botón al panel panel.add( botCancelar ); // Se añade el receptor de eventos de la ventana // para acabar la ejecución addWindowListener( new WindowAdapter() { public void windowClosing( WindowEvent evt ) { System.exit( 0 ); } } ); } public static void main( String args[] ) { java1332 miFrame = new java1332(); // Fijamos el título de la ventana y la hacemos // visible, con los componentes en su interior miFrame.setTitle( "Tutorial de Java, AWT" ); miFrame.pack(); miFrame.setVisible( true ); } } //------------------------------------------ Final del fichero java1332.java