Jump to content

Ayuda con jTables en java [RESUELTO!]


Recommended Posts

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SOLUCIONADO !!! YA CAXE COMO HACERLO GRACIAS POR LAS RESPUESTAS

SOLUCIONADO !!! YA CAXE COMO HACERLO GRACIAS POR LAS RESPUESTAS

SOLUCIONADO !!! YA CAXE COMO HACERLO GRACIAS POR LAS RESPUESTAS

 

Necesito pasar los datos que selecciono en un jtable (tiene un campo boolean para hacer la seleccion) a un jtable que se encuentra en un frame diferente, igual a un carro de compras.

 

un ejemplo de lo que quiero lograr

-tengo un jtable con datos

-selecciono algunas filas aciendo click en el campo boolean que tiene

-apreto aceptar

-los datos se agregan al jtable2 del segundo frame

 

 

alguien tiene una idea de como se puede hacer esto... es primera vez qua hago aplicaciones con frames en java

 

Edit: edite por q molesta la publicidad xD

 

SOLUCIONADO !!! YA CAXE COMO HACERLO GRACIAS POR LAS RESPUESTAS

Edited by .:Pli$kiN:.
Link to comment
Share on other sites

Hola, te hice un ejemplo, ojalá te sirva de guía, aunque trabajar con tablas es un poco mas complicado de lo que parece. El ejemplo de aquí es muy básico pero te sirve para comenzar

 

void copiar_datos(javax.swing.JTable original, javax.swing.JTable nueva)
    {
        java.util.Vector datos_fila;
        int fila_tabla_nueva   = 0;
        int columna_boolean  = 1;
        // reemplaza por la culumna de tu bollean
        // recuerda que las columnas y filas comienzan por 0
        for(int i = 0; i < original.getRowCount(); i++) // lee todas las filas
        {
            if(((Boolean)original.getValueAt(i, columna_boolean)).booleanValue() == true)
            //el if detecta el campo boolean. recuerda pasar de objeto Boolean
            //a primitivo boolean para tener un valor útil
            {
                // aqui tu codigo para COPIAR UNA FILA
                // ejemplo copia celda por celda
                for (int ii = 0; ii < original.getColumnCount(); ii++)
                {
                    Object dato = original.getValueAt(i, ii);
                    nueva.setValueAt(dato, fila_tabla_nueva, ii);
                }
                fila_tabla_nueva ++;
                // fin del ejemplo
            }
        }
    }

 

 

Sabes como trabajar con JTable , TableModel y DefaultTableModel ???

 

Saber sobre esas tres clases es imprescindible si quieres trabajar con tablas, ya que la primera es para visualizar los datos, la segunda guarda los datos y te da acceso a ellos, y la tercera tiene privilegios para modificar las estructura de la segunda.

 

Un ejemplo claro de las tres funcionando juntas es cuando quieres agregar/quitar una fila:

 

JTable : la muestra los datos en la pantalla

TableModel : guarda los datos que se van a mostrar y te da funciones de estado, lectura y escritura

DefaultTableModel : te permite modificar el modelo TableModel para poder agregar o quitar filas

 

 

te dejo el siguiente enlace que te enseña a trabajar con JTable y con DefaultTableModel:

 

Tutorial JTable y DefaultTableModel

Edited by xchanox
Link to comment
Share on other sites

vale, voy a hacer unas pruebas con el codigo y el tutorial que pusiste

si tengo algun problema edito

 

creo que el codigo no sirve para copiar los datos a un jtable que se encuentra en un frame diferente

 

sorry no me fijé que era en otro JFrame.

 

pero es facil, cuando quieras acceder a las variables de otro jFrame debes declararlas con el modificador "public" y ya puedes acceder a ellas directamente colocando el nombre del objeto de tu segunda clase seguido de un punto y el nombre de la variable o método con modificador publico.

 

Si te resulta muy dificil busca en google sobre el modificador public de java, o incluso podrías hacerlo con static (pero esto último solo si no vas a usar serializacion, ya que la combinacion staic + Serializable da mas de algun dolor de cabeza)

Link to comment
Share on other sites

tengo una duda...

 

se puede crear una tabla en un archivo de clase y luego mostrarla en el frame que uno quiera una especie de .show()

 

para eso tendrias que crearla como java Bean, los ides traen para crear Beans y se hacen de la misma forma que un programa, luego se agregan a la paleta.

 

 

También puedes hacer una clase que use jframe y que solo contenga la tabla y sus metodos, cosa de que cuando quieras usarla simplemente creas una instancia de esa clase.

Link to comment
Share on other sites

preguntaba eso por que cuando trato de llenar la 2da tabla creando una clase y llamando a la clase desde el otro frame no pasa nada la tabla sigue vacia... me imagino que cuando llamo a la clase lo que realmente estoy haciendo es crear otra tabla que no se ve en el frame.

 

ahogo la pregunta de otra forma

¿Como puedo llenar un jTable que se encuentra en un jFrame desde un archivo de clase?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...