Autor Tema: [Java] Crear tablas dinámicas y botones en JTable  (Leído 17804 veces)

iLunna

  • Sin experiencia
  • *
  • Mensajes: 6
    • Ver Perfil
[Java] Crear tablas dinámicas y botones en JTable
« en: 14 de Noviembre 2014, 03:59 »
Buenas noches ingenieros, licenciados y afin, soy nuevo por aquí y el motivo de estar aquí es para resolver mis dudas, espero y tener su apoyo.

Para el trabajo final de la universidad, me pidieron crear un programa de reportes, lo tengo todo elaborado a excepción de una parte, se me pide crear un JFrame en donde tenga 2 columnas de la siguiente manera


{ Número de folio | Resultado }
{ 0248                  | Ver           } <-- Se ordena por prioridad Alta, media y baja

En dónde el Número de folio es el número de reporte generado por random y el resultado, es un botón con label de "Ver", al momento de presionar el botón me mostrará la información del folio, bien, tengo TODOS los reportes o folios en una carpeta en el escritorio, mi duda es.

¿Cómo escaneo la carpeta y ordeno por prioridad (Dentro del txt la primera línea indica la prioridad) estos reportes y hago que en el botón me muestre toda la información?, sabiendo que tengo reportes aleatorios, pueden ser 3,4, o hasta 100.

Es algo laborioso :/, un saludo.
« Última modificación: 14 de Noviembre 2014, 08:33 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:[Java] Crear tablas dinámicas y botones en JTable
« Respuesta #1 en: 14 de Noviembre 2014, 10:05 »
Hola, haría falta ver el código para entender bien el problema. Léete estas indicaciones: https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0

Necesitarás un bucle externo para recorrer todos los archivos de la carpeta, y a su vez un bucle interno que te vaya extrayendo los datos de los archivos.

Necesitarás una colección de objetos (no sé si la clase de estos objetos ya la tienes creada, o a lo mejor tienes que crearla) uno de cuyos atributos sea el valor de la prioridad. Una vez tengas la colección de objetos, tendrás que ordenarla por prioridad.

Para ordenar por prioridad puedes usar Collections.sort, y para poder usar Collections.sort necesitas implementar un comparador.

Tienes una explicación de lo anterior en: http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=599:interface-comparator-api-java-diferencia-con-comparable-clase-collections-codigo-ejemplo-cu00915c&catid=58:curso-lenguaje-programacion-java-nivel-avanzado-i&Itemid=180

Saludos

iLunna

  • Sin experiencia
  • *
  • Mensajes: 6
    • Ver Perfil
Re:[Java] Crear tablas dinámicas y botones en JTable
« Respuesta #2 en: 14 de Noviembre 2014, 21:41 »
Gracias por las indicaciones.

Bueno creo que lo del comparador me queda bastante claro, mi duda es como crear esos bucles, como analizar la carpeta y extraer el nombre del folio (titulo del archivo), en cuanto ordenarlo por prioridad creo que podría con ello.
« Última modificación: 16 de Noviembre 2014, 14:44 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:[Java] Crear tablas dinámicas y botones en JTable
« Respuesta #3 en: 16 de Noviembre 2014, 14:47 »
Hola, has dicho antes

Citar
tengo TODOS los reportes o folios en una carpeta en el escritorio

Adjunta dos archivos de ejemplo con el contenido de esos reportes e indica cómo se estructuran y qué significado tienen los datos, con eso ya se puede pensar en cómo hacer una simulación, será lo mismo que tengas dos archivos o que tengas veinte porque de los recorridos se encargarán los bucles  ;D

iLunna

  • Sin experiencia
  • *
  • Mensajes: 6
    • Ver Perfil
Re:[Java] Crear tablas dinámicas y botones en JTable
« Respuesta #4 en: 19 de Noviembre 2014, 02:49 »
Una disculpa por la demora, en estos momentos estoy en un iPad por lo cual me es imposible adjuntar esos datos que me pides pero te los mencionaré.

En mi ruta de escritorio "C://User//Desktop//Reportes//" se guardan los archivos con un titulo de número aleatorio, un reporte puede ser 243 y otro 277, son numeros random, los datos que están dentro de estos archivos txt son:

Alta
Nombre
Correo
Direccion
Telefono
Problema

Alta varia segun la prioridad que se establezca (alta, media baja) , todas las cadenas guardadas son strings, puse la prioridad al principio para que el bucle leyera la primera linea y estableciera que prioridad es, espero entenderme y tambien tu respuesta, saludos.


Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:[Java] Crear tablas dinámicas y botones en JTable
« Respuesta #5 en: 19 de Noviembre 2014, 10:43 »
Hola, aquí te he dejado ejemplos de código que creo te pueden ayudar para plantear la solución del problema: https://www.aprenderaprogramar.com/foros/index.php?topic=1636.0

Saludos

iLunna

  • Sin experiencia
  • *
  • Mensajes: 6
    • Ver Perfil
Re:[Java] Crear tablas dinámicas y botones en JTable
« Respuesta #6 en: 19 de Noviembre 2014, 22:56 »
Primero que nada gracias por tu ayuda, en la mañana me puse a leer varios métodos y ha coincidido con la misma información que me facilitaste.

Bien ya cree la tabla y tal, ahora lo que no me muestra es los nombres del fichero en el JTable, tengo la creacion de Filas mediante el bucle que busca los archivos así:

Código: [Seleccionar]
File[] Ficheros = F.listFiles();
        Object[] Data = new Object[999];

for(int i=0;i<Ficheros.length;i++){
                   Data[i] = Ficheros[i].getName();
                   DTM.addRow(Data);
                }

Tengo 2 archivos en la carpeta, por lo que se deberían generar 2 filas, se generan pero no muestran el nombre, quiero imaginar que es error del array. :-\

<-- Imagen de la tabla
« Última modificación: 19 de Noviembre 2014, 23:03 por iLunna »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:[Java] Crear tablas dinámicas y botones en JTable
« Respuesta #7 en: 19 de Noviembre 2014, 23:29 »
Pega el código completo para poder compilarlo y revisarlo  ::)

iLunna

  • Sin experiencia
  • *
  • Mensajes: 6
    • Ver Perfil
Re:[Java] Crear tablas dinámicas y botones en JTable
« Respuesta #8 en: 19 de Noviembre 2014, 23:31 »
//Retirado

Solo crea el JFrame y cambia las rutas de los directorios y el resto lo sabes muy bien.
« Última modificación: 20 de Noviembre 2014, 04:11 por iLunna »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:[Java] Crear tablas dinámicas y botones en JTable
« Respuesta #9 en: 19 de Noviembre 2014, 23:46 »
He cambiado rutas de directorios y he compilado, pero no veo que salga ningún error, de hecho no hace nada, ni muestra nada... tendré que mirarlo con calma  ???

iLunna

  • Sin experiencia
  • *
  • Mensajes: 6
    • Ver Perfil
Re:[Java] Crear tablas dinámicas y botones en JTable
« Respuesta #10 en: 19 de Noviembre 2014, 23:48 »
Dale dimensiones al JFrame

Código: [Seleccionar]
public static void main(String[] args) {
       Data DD = new Data();
       DD.setBounds(200,0,500,250);
                DD.setVisible(true);
                DD.setResizable(false);
    }

EDIT:

Viendo el código tengo errores en unos parámetros, ya lo resolví, y el por qué no me imprimía es por que en la función
Código: [Seleccionar]
DTM.addRow(Data); no le coloco el array dimensional , por lo que Data no me imprime nada, si le coloco el bucle queda así
Código: [Seleccionar]
DTM.addRow(Data[i]); pero el parámetro no admite Object[], lo que me queda es convertir de Object[] a Object pero no se como
« Última modificación: 20 de Noviembre 2014, 04:14 por iLunna »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:[Java] Crear tablas dinámicas y botones en JTable
« Respuesta #11 en: 20 de Noviembre 2014, 10:40 »
He perdido el código, no lo había guardado...  ???

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".