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!
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
bueno este si te ayudara para agregar datos solo has model.add("ARCHIVO","RUTA");
(http://www.imagengratis.org/images/jtable.png)
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);
}
}
Gracias Eyer! :) :) :)
Mi idolo xD
Buenas, ahora otra cosita jeje :-X
Como haria para convertir el contenido de la columna Ruta en array de Strings :huh:
no te entiendo dices para extraer el contenido de la columna?
Saludos.
Te dije revisa el modelo de la tabla, como es un DefaultTableModel trae esta función que te servira para extraer datos
getDataVector()
/**
* 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
Hola, buenas
intenta con esto
model.getValueAt(i,1).toString()
Y ya obtendras algo como esto...
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
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 :)
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
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
Sip si me sirvio xDD
Gracias Darius ;D ;D
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