Ayuda JTable

Iniciado por Blitzkrieg', 28 Noviembre 2009, 23:59 PM

0 Miembros y 1 Visitante están viendo este tema.

Blitzkrieg'

Bueno otra dudilla.

Tengo una JTable de 2 columnas,25 filas y un boton. (La primera columna se llama Archivo y la segunda Ruta).

Al darle al boton me sale un JFileChooser donde yo elijo un archivo y luego guardo el nombre del archivo en la String "name" y el Path del archivo en la cadena "ruta". Hasta ahi lo tengo listo.

¿Que necesito?

Necesito que luego se agregue a la JTable la string ruta y la string name, es decir, name en la columna Archivo y la string ruta en la columna Ruta.

Algo asi:      Archivo |  Ruta
             --------------------------------
                   name  | ruta
                             |
                             |
                             |              
Ademas que se puedan agregar varios archivos a la table, es decir, algo asi:
                      ------------------------------------------------------------------------------
                      |    Archivo                  |   Ruta                                 |
                      ------------------------------------------------------------------------------
                      |     name                   |                       ruta                |
                      ------------------------------------------------------------------------------
                      |  otro name               |                otra ruta                |
                      ------------------------------------------------------------------------------
                      |  otro name              |                 otra ruta               |
                      ------------------------------------------------------------------------------

Espero que me hayan entendido y me puedan ayudar  :D

Archivo y Ruta = Columnas
name y ruta = Strings

¡Que partidero de cabeza esto!



egyware


Leyer

#2
bueno este si te ayudara para agregar datos solo has model.add("ARCHIVO","RUTA");

Código (java) [Seleccionar]

import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

public class frame extends JFrame {
private static final long serialVersionUID = 1L;
public frame(){
model model = new model();
JTable table = new JTable(model);

table.setFillsViewportHeight(true);
table.setRowSelectionAllowed(true);

setLayout(new GridLayout(1,1));
JScrollPane scrollPane = new JScrollPane(table);
add(scrollPane);

setSize(300,300);
setVisible(true);

model.add("File.x", "\\");
}
public static void main(String []args){
new frame().setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
class model extends DefaultTableModel
{
private static final long serialVersionUID = 1L;
   public model(){
   this.addColumn("Archivo");
   this.addColumn("Ruta");
   }
   @Override
   public boolean isCellEditable(int row, int column) {
    return false;
   }
   public void add(String name, String path) {
       Object[] obj = {name,path};
       super.addRow(obj);
   }
}

Blitzkrieg'

Gracias Eyer!  :) :) :)

Mi idolo xD



Blitzkrieg'

Buenas, ahora otra cosita jeje  :-X

Como haria para convertir el contenido de la columna Ruta en array de Strings  :huh:



Leyer

no te entiendo dices para extraer el contenido de la columna?

Saludos.

egyware

Te dije revisa el modelo de la tabla, como es un DefaultTableModel trae esta función que te servira para extraer datos
getDataVector()
Código (java) [Seleccionar]

/**
   * Returns the Vector of Vectors that contains the table's data values.
   */
Vector getDataVector(){..}

Que significa que devuelve un vector que contiene más vectores y que cada vector tiene el valor de una fila.
:S medio complicado lo que dije anteriomente.
Saludos

1mpuls0

Hola, buenas

intenta con esto

Código (java) [Seleccionar]
model.getValueAt(i,1).toString()

Y ya obtendras algo como esto...

Código (java) [Seleccionar]

import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import java.util.*;

public class frame extends JFrame {
private static final long serialVersionUID = 1L;
public frame(){
model model = new model();
JTable table = new JTable(model);
String arreglo[];
List lista = new ArrayList();
Vector vector = new Vector();

table.setFillsViewportHeight(true);
table.setRowSelectionAllowed(true);

setLayout(new GridLayout(1,1));
JScrollPane scrollPane = new JScrollPane(table);
add(scrollPane);

setSize(300,300);
setVisible(true);

model.add("File.x", "\\");
model.add("foro", "elhacker");

arreglo = new String[model.getRowCount()];

for(int i=0; i<model.getRowCount(); i++){
arreglo[i]=model.getValueAt(i,1).toString();
lista.add(model.getValueAt(i,1).toString());
vector.addElement(model.getValueAt(i,1).toString());

}

for(int i=0; i<model.getRowCount(); i++){
System.out.println(arreglo[i]);
System.out.println(lista.get(i));
System.out.println(vector.elementAt(i));
}

}
public static void main(String []args){
new frame().setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
class model extends DefaultTableModel
{
private static final long serialVersionUID = 1L;
    public model(){
    this.addColumn("Archivo");
    this.addColumn("Ruta");
    }
    @Override
    public boolean isCellEditable(int row, int column) {
    return false;
    }
    public void add(String name, String path) {
        Object[] obj = {name,path};
        super.addRow(obj);
    }
}



Saludos
abc

Blitzkrieg'

Cita de: L-EYER en 29 Noviembre 2009, 04:18 AM
no te entiendo dices para extraer el contenido de la columna?

Saludos.

Si extraer el contenido de la columna Ruta  :)



1mpuls0

#9
Cita de: Sir Crapsalot en 29 Noviembre 2009, 20:48 PM
Si extraer el contenido de la columna Ruta  :)

con el metodo getValueAt(f,c); obtienes los valores de las posiciones fila, columna de tu model
Código (java) [Seleccionar]


for(int i=0; i<model.getRowCount(); i++){
arreglo[i]=model.getValueAt(i,1).toString();
lista.add(model.getValueAt(i,1).toString());
vector.addElement(model.getValueAt(i,1).toString());

}


En este caso lo que te imprime es
\            //esto es lo que contiene el arreglo
\            //esto es lo que contiene la lista
\            //esto es lo que contiene el vector
elhacker  //esto es lo que contiene el arreglo
elhacker  //esto es lo que contiene la lista
elhacker  //esto es lo que contiene el vector


Saludos
abc