Como Usar Las Tablas

Embed Size (px)

Citation preview

Crear una tabla simple

Prueba esto:1. Haga clic en el botn Iniciar para ejecutarSimpleTableDemousandoJava Web Start(descargar el JDK 7 o posterior).O, para compilar y ejecutar el ejemplo usted mismo, consulte elndice de ejemplo.

2. Haga clic en la celda que contiene "Snowboarding".Se selecciona la primera fila entera, lo que indica que se ha seleccionado datos de Kathy Smith.Una caracterstica especial indica que la celda "Snowboarding" es editable.En general, se empieza a editar una celda de texto haciendo doble clic en l.3. Coloque el cursor sobre "Nombre".Ahora presione el botn del ratn y arrastre hacia la derecha.Como puede ver, los usuarios pueden reorganizar las columnas en las tablas.4. Coloque el cursor justo a la derecha de un encabezado de columna.Ahora pulse el botn del ratn y arrastre hacia la derecha o hacia la izquierda.La columna cambia de tamao, y las otras columnas ajustar para llenar el espacio restante.5. Cambiar el tamao de la ventana que contiene la tabla de manera que es ms grande de lo necesario para mostrar toda la tabla.Todas las celdas de la tabla se hacen ms anchas, expandindose para llenar el espacio horizontal extra.

La tabla de laSimpleTableDemo.javadeclara los nombres de las columnas en una matriz de String:String [] = {columnnames "Nombre", "Last Name", "Sport", "# De aos", "Vegetariano"};Se inicializa Su datos y se almacena en una matriz de objetos de dos dimensiones:Object [] [] data = { {"Kathy", "Smith", "Snowboard", new Integer (5), new Boolean (false)}, {"Juan", "Prez", "Remo", new Integer (3), new Boolean (true)}, {"Sue", "Negro", "Knitting", new Integer (2), new Boolean (false)}, {"Jane", "blanco", "Velocidad de lectura", new Integer (20), new Boolean (true)}, {"Joe", "Brown", "Pool", new Integer (10), new Boolean (false)}};A continuacin, la tabla se construye utilizando estos datos y columnNames:Tabla JTable = JTable nuevas (datos, columnNames);Hay dosJTableconstructores que aceptan datos directamente (SimpleTableDemoutiliza la primera): JTable (Object [] [] RowData, Object [] columnNames) JTable (Vector RowData, Vector columnNames)La ventaja de estos constructores es que son fciles de usar.Sin embargo, estos constructores tambin tienen desventajas: Ellos hacen automticamente cada clula editable. Ellos tratan a todos los tipos de datos de la misma (como cadenas).Por ejemplo, si una columna de la tabla tienebooleanasde datos, la tabla puede mostrar los datos en una casilla de verificacin.Sin embargo, si se utiliza cualquiera de los dosJTableconstructores enumerados anteriormente, elbooleanode datos se muestra como una cadena.Usted puede ver la diferencia en elVegetarianacolumna de la figura anterior. Requieren que se pone todos los datos de la tabla en una matriz o vector, que puede no ser apropiado para algunos datos.Por ejemplo, si va a crear instancias de un conjunto de objetos de una base de datos, es posible que desee consultar los objetos directamente por sus valores, en lugar de copiar todos sus valores en una matriz o vector.Si usted desea conseguir alrededor de estas restricciones, debe implementar su propio modelo de tabla, como se describe enCreacin de una tabla de modelo.Agregar una tabla a un contenedorAqu est el cdigo tpico para la creacin de unpanel de desplazamientoque sirve como un contenedor para una tabla:JScrollPane scrollPane = new JScrollPane (tabla);table.setFillsViewportHeight (true);Las dos lneas en este fragmento de hacer lo siguiente: ElJScrollPaneconstructor se invoca con un argumento que se refiere al objeto de tabla.Esto crea un panel de desplazamiento como un contenedor para la mesa;la mesa se aade automticamente al contenedor. JTable.setFillsViewportHeightse invoca para establecer elfillsViewportHeightpropiedad.Cuando esta propiedad esverdaderala tabla utiliza toda la altura del contenedor, aunque la tabla no tiene suficientes filas para utilizar todo el espacio vertical.Esto hace que sea ms fcil utilizar la mesa como un destino de arrastrar y soltar.El panel de desplazamiento coloca automticamente el encabezado de la tabla en la parte superior de la ventana grfica.Los nombres de columna permanecen visibles en la parte superior del rea de visualizacin cuando se recorre la tabla de datos.Si est utilizando una tabla sin un panel de desplazamiento, entonces usted debe obtener el componente de cabecera de la tabla y coloque usted mismo.Por ejemplo:container.setLayout (nueva BorderLayout ());contenedor.add (table.getTableHeader (), BorderLayout.PAGE_START);contenedor.add (mesa, BorderLayout.CENTER);Configurando y Cambiando los anchos de columnaPor defecto, todas las columnas de una tabla empiezan con la misma anchura, y las columnas se llenan automticamente todo el ancho de la tabla.Cuando la tabla se hace ms ancho o ms estrecho (lo que podra suceder cuando el usuario cambia el tamao de la ventana que contiene la tabla), todos los anchos de columna cambian adecuadamente.Cuando el usuario cambia el tamao de una columna arrastrando el borde derecho, y luego o bien otras columnas deben cambiar el tamao, o el tamao de la tabla deben cambiar.Por defecto, el tamao de la tabla sigue siendo el mismo, y todas las columnas a la derecha del punto de arrastre redimensionar para acomodar el espacio de creacin o la supresin de la columna a la izquierda del punto de arrastre.Para personalizar los anchos de columna iniciales, puede invocarsetPreferredWidthen cada una de las columnas de sus tablas.Esto establece tanto las anchuras preferidas de las columnas y sus anchuras relativas aproximadas.Por ejemplo, aadir el siguiente cdigo paraSimpleTableDemohace su tercera columna ms grande que las otras columnas:Columna TableColumn = null;for (int i = 0; i