Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Java => Mensaje iniciado por: Blitzkrieg' en 28 Noviembre 2009, 23:59 PM

Título: Ayuda JTable
Publicado por: Blitzkrieg' en 28 Noviembre 2009, 23:59 PM
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!
Título: Re: Ayuda JTab
Publicado por: egyware en 29 Noviembre 2009, 00:07 AM
Mmm... deberias ver el Modelo de la tabla, para modificar los datos directamente.
Hechale un vistaso a http://java.sun.com/javase/6/docs/api/javax/swing/JTable.html
y http://java.sun.com/javase/6/docs/api/javax/swing/table/DefaultTableModel.html
Saludos
Título: Re: Ayuda JTable
Publicado por: Leyer en 29 Noviembre 2009, 00:34 AM
bueno este si te ayudara para agregar datos solo has model.add("ARCHIVO","RUTA");
(http://www.imagengratis.org/images/jtable.png)
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);
   }
}
Título: Re: Ayuda JTable
Publicado por: Blitzkrieg' en 29 Noviembre 2009, 00:35 AM
Gracias Eyer!  :) :) :)

Mi idolo xD
Título: Re: Ayuda JTable
Publicado por: Blitzkrieg' en 29 Noviembre 2009, 02:47 AM
Buenas, ahora otra cosita jeje  :-X

Como haria para convertir el contenido de la columna Ruta en array de Strings  :huh:
Título: Re: Ayuda JTable
Publicado por: Leyer en 29 Noviembre 2009, 04:18 AM
no te entiendo dices para extraer el contenido de la columna?

Saludos.
Título: Re: Ayuda JTable
Publicado por: egyware en 29 Noviembre 2009, 04:24 AM
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
Título: Re: Ayuda JTable
Publicado por: 1mpuls0 en 29 Noviembre 2009, 05:19 AM
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
Título: Re: Ayuda JTable
Publicado por: Blitzkrieg' en 29 Noviembre 2009, 20:48 PM
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  :)
Título: Re: Ayuda JTable
Publicado por: 1mpuls0 en 29 Noviembre 2009, 22:37 PM
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
Título: Re: Ayuda JTable
Publicado por: Blitzkrieg' en 29 Noviembre 2009, 22:44 PM
Sip si me sirvio xDD

Gracias Darius  ;D ;D
Título: Re: Ayuda JTable
Publicado por: 1mpuls0 en 29 Noviembre 2009, 22:47 PM
Cita de: Sir Crapsalot en 29 Noviembre 2009, 22:44 PM
Sip si me sirvio xDD

Gracias Darius  ;D ;D

De nada, perdon no habia mirado el mensaje.


Saludos