Curso Java. Anexos IV JTable II. Vídeo 268
Summary
TLDREste curso de programación en Java se centra en la creación de jTables personalizados. Se explica cómo construir jTables simples con arrays de datos y nombres de columnas. Luego, se introduce la clase abstracta AbstractTableModel, que ofrece métodos como getRowCount, getColumnCount e getValueAt para crear jTables más elaboradas. Se recomienda consultar la API de Java y la clase AbstractTableModel para comprender su funcionamiento. El vídeo termina con un ejemplo básico de cómo construir una jTable personalizada y la promesa de un ejemplo más complejo en futuras entregas.
Takeaways
- 😀 Este curso de programación en Java se centra en la construcción de jTables personalizados.
- 👨🏫 En el vídeo anterior se explicó cómo crear una jTable simple utilizando arrays para los datos de filas y columnas.
- 🔍 Para jTables más elaboradas, se utiliza la clase abstracta AbstractTableModel, que ofrece métodos para construir tablas personalizadas.
- 🛠️ Los métodos clave en AbstractTableModel son: getRowCount(), getColumnCount() y getValueAt(), que permiten definir el contenido y estructura de la jTable.
- 📚 Se recomienda consultar la API de Java y la documentación de AbstractTableModel para comprender mejor su funcionamiento y uso.
- 💻 Se muestra un ejemplo práctico de cómo crear una jTable personalizada en Eclipse, incluyendo la creación de una clase que hereda de AbstractTableModel.
- 🔢 Se explica cómo definir el número de filas y columnas en la jTable a través de los métodos getRowCount() y getColumnCount() respectivamente.
- 📝 El método getValueAt() se utiliza para asignar valores a las celdas de la jTable, y se puede personalizar para mostrar información de manera dinámica.
- 🖥️ Se menciona la posibilidad de agregar una barra de desplazamiento a la jTable utilizando JScrollPane.
- 🔄 El vídeo concluye con un jTable personalizado básico, y se sugiere que en futuras entregas se construirá un ejemplo más complejo.
Q & A
¿Qué es un 'JTable' en Java?
-Un 'JTable' es un componente de interfaz de usuario en Java que permite mostrar datos en forma de tabla. Es parte de la librería Swing y permite la creación de tablas con filas y columnas, similar a una hoja de cálculo.
¿Cómo se construye una 'JTable' simple según el guion?
-Para construir una 'JTable' simple, se llama al constructor de la clase 'JTable' y se le pasan dos parámetros: un array con los datos de las filas y otro con los nombres de las columnas.
¿Qué clase abstracta se utiliza para construir 'JTables' más personalizadas?
-Para construir 'JTables' más personalizadas, se utiliza la clase abstracta 'AbstractTableModel', que proporciona métodos para definir el número de filas, columnas y el contenido de cada celda.
¿Cuáles son los tres métodos principales que debe implementar una clase que hereda de 'AbstractTableModel'?
-Los tres métodos principales que debe implementar una clase que hereda de 'AbstractTableModel' son 'getRowCount()', 'getColumnCount()' y 'getValueAt(int rowIndex, int columnIndex)'.
¿Qué método se utiliza para especificar el número de filas que tendrá una 'JTable' personalizada?
-El método 'getRowCount()' se utiliza para especificar el número de filas que tendrá una 'JTable' personalizada.
¿Cómo se pueden personalizar los nombres de las columnas en una 'JTable'?
-Los nombres de las columnas en una 'JTable' se pueden personalizar utilizando el método 'getColumnName(int column)', que por defecto devuelve el nombre de la columna basado en su índice, pero que se puede sobrescribir para devolver un nombre personalizado.
¿Qué es la interfaz 'TableModel' y qué métodos provee para la manipulación de tablas?
-La interfaz 'TableModel' es una interfaz en Java que provee métodos para la manipulación y construcción de tablas personalizadas. Entre sus métodos se incluyen 'getRowCount()', 'getColumnCount()', 'getValueAt(int, int)', 'isCellEditable(int, int)', 'setValueAt(Object, int, int)', 'getColumnClass(int)' y 'getColumnName(int)'.
¿Cómo se implementa la lógica para rellenar una 'JTable' personalizada con información?
-Para rellenar una 'JTable' personalizada con información, se implementa la lógica en el método 'getValueAt(int rowIndex, int columnIndex)', donde se define el valor que se mostrará en cada celda de la tabla.
¿Qué es un 'JScrollPane' y cómo se relaciona con una 'JTable'?
-Un 'JScrollPane' es un componente de Java que permite desplazarse por contenido que excede el tamaño visible del área de visualización. Se relaciona con una 'JTable' porque permite agregar barras de desplazamiento a la tabla para navegar por sus filas y columnas si estas son demasiado grandes para caber en la ventana.
¿Cómo se puede cambiar el título de una 'JTable' personalizada en el código?
-El título de una 'JTable' personalizada se puede cambiar estableciendo el atributo 'title' del componente 'JTable' o modificando la propiedad 'tableHeader' del objeto 'JTable'.
Outlines
💻 Creación de jTables personalizadas en Java
Este párrafo introduce el tema de la creación de jTables más elaboradas y personalizadas en Java. Se menciona que en el vídeo anterior se vio cómo construir una jTable simple usando un constructor que requiere dos arrays: uno para los nombres de las columnas y otro para los datos de las filas. Sin embargo, se destaca que no siempre se cuenta con esta información en forma de arrays, y por ello, se presenta la clase abstracta 'AbstractTableModel' que proporciona tres métodos: 'getRowCount()', 'getColumnCount()' y 'getValueAt(int, int)' para construir jTables completamente personalizadas. Además, se hace una recomendación de revisar la API de Java y la clase 'TableModel' para comprender mejor estos métodos y se invita a los espectadores a seguir el curso para aprender a construir jTables avanzadas.
🔨 Implementación de una jTable personalizada
En este párrafo se describe el proceso de implementación de una jTable personalizada. Se crea una clase llamada 'ModeloTablaPersonalizada' que hereda de 'AbstractTableModel' y se implementan los métodos necesarios: 'getColumnCount()', 'getRowCount()' y 'getValueAt(int, int)'. Se establece un ejemplo sencillo donde se definen tres columnas y cinco filas, y se muestra cómo se configura la información de cada celda de la tabla. Se menciona la necesidad de importar el paquete correspondiente y se explica cómo se utiliza el constructor de 'JTable' que acepta un modelo. Finalmente, se agrega la tabla a un 'JScrollPane' para incluir una barra de desplazamiento y se guarda el código para su ejecución.
📈 Llenando la jTable con información y personalización de columnas
Este párrafo explica cómo llenar la jTable personalizada con información y cómo personalizar el nombre de las columnas. Se muestra un ejemplo donde se utiliza el método 'getValueAt(int, int)' para devolver información simple basada en los índices de fila y columna. Se crea una variable 'zeta' que se utiliza para generar una secuencia de números incrementando el índice de fila, y se crea otra variable 'y' que incrementa el índice de columna en 2 para mostrar una secuencia de números diferentes. Además, se utiliza el método 'columnName' para cambiar el nombre de las columnas por defecto a nombres personalizados. Se guarda el código y se ejecuta para visualizar la jTable con las columnas renombradas y los valores numéricos incrementando en cada celda. Se invita a los espectadores a continuar aprendiendo y se menciona que en el próximo vídeo se presentará un ejemplo más complejo.
Mindmap
Keywords
💡JTable
💡AbstractTableModel
💡getRowCount
💡getColumnCount
💡getValueAt
💡API de Java
💡TableModel
💡ScrollPane
💡Personalización de tablas
💡Eclipse
Highlights
Introducción al curso de programación en Java, enfocado en la creación de jTables.
Explicación de cómo construir una jTable simple utilizando arrays para los datos de filas y nombres de columnas.
Método para insertar una jTable en un JScrollPane para agregar barras de desplazamiento.
Discusión sobre la limitación de usar arrays para construir jTables y la necesidad de personalización.
Introducción a la clase abstracta AbstractTableModel y sus métodos para construir jTables personalizadas.
Descripción de los métodos getRowCount, getColumnCount e getValueAt de la clase AbstractTableModel.
Recomendación de consultar la API de Java y la documentación de AbstractTableModel para comprender mejor su funcionamiento.
Métodos y interfaces implementados por AbstractTableModel, incluyendo TableModel y Serializable.
Inicio de la creación de un ejemplo práctico de una jTable personalizada en Eclipse.
Uso del constructor de JFrame para configurar la ventana que contendrá la jTable.
Creación de una nueva clase llamada MarcoTablaPersonalizado para construir el marco de la jTable.
Explicación del proceso de heredar de AbstractTableModel y la implementación de los métodos abstractos.
Implementación del método getColumnCount para definir el número de columnas en la jTable.
Implementación del método getRowCount para definir el número de filas en la jTable.
Creación del objeto JTable utilizando el modelo personalizado creado.
Adición de la jTable al JScrollPane y configuración para mostrar la barra de desplazamiento.
Implementación del método getValueAt para rellenar la jTable con información simple.
Ejemplo de cómo personalizar los nombres de las columnas utilizando el método getColumnName.
Conclusión del vídeo con una jTable personalizada básica y anticipo de ejemplos más complejos en futuras entregas.
Transcripts
hola que tal bienvenidos a todos a otra
entrega de este curso de programación en
java en el que nos encontramos en la
parte de los anexos viendo la
construcción de jay tables vimos en el
vídeo anterior cómo construir una ley
table sencilla en este vídeo vamos a ver
cómo construir y 'tablets' un poco más
elaboradas un poco más personalizadas
si recordáis el ejemplo del vídeo
anterior para crear una ley table pues
lo único que había que hacer era llamar
al constructor de jay table y uno de los
constructores de esta clase nos pedía
dos parámetros los datos de las filas y
los datos de los nombres de las columnas
tanto para los datos de las filas como
para los nombres de las columnas
construimos dos arrays y con esta
información era suficiente un array con
el nombre de las columnas el otro array
con el nombre de los registros de la
tabla y ya está luego metíamos la tabla
en un high scroll pane para que tuviese
barra de desplazamiento y con eso pues
era suficiente que es lo que ocurre pues
que no siempre a la hora de construir y
tables vas a poder hacerlo de esta forma
no siempre vas a contar con dos arrays
que contienen toda la información y
cuando te encuentres en esta situación
tendrás que construir la ley de igual de
la forma y eso es lo que nos proporciona
una clase abstracta que es la clase
abstract table
esta clase abstracta nos va a
proporcionar tres métodos que nos van a
permitir construir tablas totalmente
personalizados los métodos son que roe
count
get columna count inkjet value at el
primero de ellos get loud' count pues
nos permite especificar cuántos
registros va a tener la tabla get con un
count nos va a permitir especificar
cuántas columnas puede tener la tabla y
great value at nos va a permitir
especificar la información que va en
cada registro de la tabla para ello
recibe dos argumentos o parámetros que
nos permiten configurar la información
por parte de la fila y por parte de la
columna entonces bueno pues haciendo
diferentes cálculos manejando cada uno
de estos métodos puedes llegar a
construir jay table totalmente
personalizadas puedes construir tablas
cuyas filas se vayan incrementando poco
a poco cuyas columnas también en caso
del necesario pues se vayan
incrementando también y luego pues con
el método que value a configurar o
determinar mejor dicho la información
que va en cada uno de los registros
antes de ponernos manos a la obra y ver
el primer ejemplo de cómo crear una ley
de gaulle personalizada os recomiendo
como siempre que vayáis a la api de java
y estéis un vistazo a la clase abstracta
y bold model sobre todo os recomiendo
que leáis la descripción porque en esta
descripción nos dice para qué sirve esta
clase abstracta y hace mención a los
tres métodos que os acabo de enseñar del
rock aunque color kaun y kate value act
esta clase abstracta implementa a su vez
dos interface 'estable' model y serial y
table la interface table model pues trae
también una serie de métodos que nos van
a permitir pues manipular construir
tablas de forma personalizada
y una vez visto todo esto pues vamos a
elaborar un primer ejemplo muy sencillo
y probablemente en el próximo vídeo
elaboraremos un ejemplo más complejo
para elaborar una ley table
personalizada así que nos vamos a ir a
eclipse y en el paquete que estábamos
utilizando en vídeos anteriores vamos a
crear una nueva clase para la cual pues
voy a llevar mucho
jake table 2 vamos a decir al eclipse
que nos construya el método main y aquí
podemos comenzar voy a reutilizar parte
del código y así no tengo que escribir
tanto del ejemplo del vídeo anterior
aquí pues todo lo que hace referencia a
la construcción del yei frame por lo
copió y lo pego cambiando solamente pues
la clase a la que estamos haciendo
mención en el constructor en vez de
marco tabla en la clase de del ejercicio
del vídeo anterior pues en este caso va
a llamar al constructor de una clase que
se va a llamar marco tabla personalizado
claro nos marca error porque esta clase
no existe pero la vamos a crear ahora
mismo class
de hacer un copia pega para no
equivocarme y esta clase pues como es la
que construye el marco tiene que quedar
dave como siempre abrimos la llave y la
vamos cerrando ya
para el constructor de esta tabla
también voy a reutilizar código y así
escribo lo menos posible me va a valer
esto esto lo modificaré el set va
también bueno por lo menos estas tres
líneas control c control uve lógicamente
pues tengo que cambiar el nombre del
constructor
perfecto y ahora pues vamos a cambiar el
título de la tabla vamos a poner que
esta tabla se llama tabla personalizada
por ejemplo
y la ubicación y dimensiones de la tabla
lo dejamos como está vamos a cerrar esta
segunda llave
y bueno pues de momento hasta aquí nada
nuevo la novedad viene en que ahora
vamos a crear una tercera clase
y esta clase va a ser la que construya
realmente nuestra tabla personalizada
voy a llamar a la clase por ejemplo
modelo tabla
personalizada y esta es la clase que
debe heredar de atractivo model entonces
abstract te digo el modelo abrimos la
llave
y dejamos que sea eclipse quien la
pierde nos marca error porque eclipse
detecta que se trata de una clase
abstracta vamos a dejar que sea clip se
quien implemente pues bueno primero
quien importe en el paquete
correspondiente que es el primer error
que nos sale ya está importado y ahora
este es el error que nos sale porque al
detectar que es una clase abstracta
debemos implementar los métodos que
faltan vamos a dejar que sea eclipse y
fijaos como aquí están diez columnas
count the rock out y que value
voy a intentar construir una tabla
personalizada lo más sencilla posible y
a partir de ahí vosotros por lo que
estaremos ya porque el curso está
prácticamente completado seríais capaces
o debería ir de ser capaces de construir
cualquier tipo de tabla que es con un
caos fijaos que nos está devolviendo un
cero si vais a la api echéis un vistazo
a este método descolgado
método que lo está heredando de la
interface table model pulsamos en table
model y aquí esta columna bueno pues
devuelve el número de columnas de este
modelo y lo mismo con get road aunque
pertenezca a la misma interface devuelve
el número de filas
bueno pues sabiendo esto no tenemos
ninguna dificultad por ejemplo es
decirle que nos devuelva 3 por poner un
ejemplo ya tenemos tres columnas aquí le
decimos que nos devuelva 5 ya tenemos 5
filas de momento no hay información en
esta tabla pero vamos a ver si funciona
aunque antes deberíamos de ir al
constructor del high frame y decirle lo
siguiente es table model que sería la
interface vamos a llamar a esta
instancia mi modelo es igual a new
modelo
tabla personalizada ya menos
bueno esto lo primero
nos marca un error esto seguramente es
porque tenemos que importar el paquete
correspondiente ya está importado y
ahora lo que tenemos que hacer es
construir el objeto de tipo hey table
que vimos ya en el vídeo anterior vamos
a llamar a este objeto pues mi tabla
y decimos que esto es igual a news y
table y si recordáis había un
constructor de la clase y hay table que
es el que utilizamos en el vídeo
anterior que nos permitía especificar el
array que contiene el nombre de las
columnas y el array que contiene los
registros pero también hay un
constructor que nos permite especificar
un modelo y le pasamos a ese constructor
el modelo que acabamos de crear es decir
mi modelo
usted también nos construye una ley de
hibble este error pues es porque debemos
importar el iac swing y ahora pues
agregamos todo esto a un james crowley
para que nos aparezca en el caso de que
sea necesario la barra de desplazamiento
y scroll pare
y a este y scroll panel le pasamos la
tabla a la ponemos llamado quitarla
aquí el error pues situamos el ratón
encima importamos también esa clase y
guardamos cambios y ahora si no se me ha
olvidado nada aunque la tabla estará
vacía de contenido como podéis observar
tiene tres columnas lo que le dijimos en
el get con un out y cinco filas lo que
le dijimos en el get loud' out
bueno pues ya hemos construido una tabla
personalizada el problema es que está
vacía vamos a llenarla de información
aunque sea información muy simple
fijaos que este método está recibiendo
dos argumentos en el index
colom index y bueno pues por defecto
aquí nos devuelven un por eso aparece
completamente vacía vamos a quitar la
instrucción del retorno y como digo voy
a hacer algo muy sencillo voy a crear
una variable zeta y voy a decir que es
igual al primer argumento road index así
lo llama más uno por poner un ejemplo
después me creó otra variable a la cual
ya muy griega y le digo igual que estaba
será con un index
+ 2
punto y coma
y ahora vamos a decir que nos devuelva
fijaos que este método pues nos debería
de devolver un objeto como por ejemplo
un string vamos a decirle que nos
devuelva lo siguiente aquí un espacio en
blanco lo concatenados con lo que hemos
almacenado en la variable z lo concatena
vamos a subir con otro espacio y
finalmente concatenado con lo que
tenemos almacenado en la variable y es
una información que no tiene ningún
sentido pero bueno por lo menos nos irá
incluyendo los valores numéricos que se
irán incrementando dentro de esta tabla
guardamos cambios ejecutamos y bueno
pues aquí podemos ver nuestra tabla
personalizada tres columnas cinco
registros y la información que aparece
dentro de la tabla pues el primer dato
este uno que estoy señalando ahora mismo
y este 2 y ese 3 y 4 5 etcétera estos
datos pertenecen al primer argumento que
recibe el método get value
es decir a ese road index le ido sumando
1 pues para que vaya haciendo una
consecución de números de uno en uno y
luego pues el segundo dato fijaos dos
tres
y 4
correspondería a lo que tenemos
almacenado en la y al parámetro columna
index al que le hemos sumado 2 y por eso
comenzamos directamente desde el 2 y es
la información que finalmente nos
devuelve el método pues esta sería la
base a partir de aquí pues tú puedes
hacer muchísimos cálculos muchísimas
variantes como decía antes para poder
construir la tabla a tu gusto incluso
podemos utilizar un método
para renombrar las columnas y suavizado
cuenta voy a comentar esto de momento
por si acaso alguien no se ha dado
cuenta por defecto las columnas las
nombra como si tuviésemos en excel
etcétera el nombramiento que tiene por
defecto pero esto lo podemos cambiar si
utilizamos este método
columna mail
este método recibe un parámetro al cual
podemos llamar por ejemplo ce abrimos
llave la vamos cerrando ya
y como es de tipo string pues vamos a
decirle que no se vuelva un string por
ejemplo return
columna un espacio y esto lo
concatenados con el parámetro de fijaos
que nos dice que lo está sobre
escribiendo el eclipse y nos dice que lo
sobreescribir de la clase abstracta y
bold model
bueno pues guardamos cambios volvemos a
ejecutar y ahora como podéis observar
tenemos otro nombre completamente
diferente para las columnas columna cero
columna 1 columna 2 etc
a partir de aquí pues lo que vosotros
seáis capaces de hacer no obstante en el
próximo vídeo elaboraré un ejemplo un
poco más complejo utilizando esta clase
abstracta igual model para construir un
hey table personalizado más complejo
vamos a dejar este vídeo en el punto en
el que nos encontramos y os digo lo de
siempre os invito a que permanezcamos
atentos a la próxima entrega hasta
entonces
Voir Plus de Vidéos Connexes
🚀 MÉTODOS CONSTRUCTORES y OBJETOS en JAVA | 🤔| POO con Java 🖥️ | Explicación FÁCIL 2023 | #4
Curso Java. Estructuras principales VI. Clase Math. Vídeo 9
Java Netbeans - Clases en Java Netbeans
🚀 CLASES ABSTRACTAS en JAVA | 🤔| Programación Orientada a Objetos 🖥️ | Explicación FÁCIL 2023 | #9
Lógica de la Programación Orientada a Objetos Explicada con FIFA
Curso Java. Estructuras principales III. Declaración variables Eclipse Vídeo 6
5.0 / 5 (0 votes)