Foros del Web » Programación para mayores de 30 ;) » Java »

jTable y models

Estas en el tema de jTable y models en el foro de Java en Foros del Web. Hola a todos! les escribo porque tengo unas grandes dudas. Tengo un jTable que dependiendo de una acción, utiliza un modelo que maneja unos datos. ...
  #1 (permalink)  
Antiguo 25/10/2011, 11:01
 
Fecha de Ingreso: septiembre-2010
Ubicación: Caracas
Mensajes: 83
Antigüedad: 13 años, 7 meses
Puntos: 6
jTable y models

Hola a todos! les escribo porque tengo unas grandes dudas.

Tengo un jTable que dependiendo de una acción, utiliza un modelo que maneja unos datos.

Código:
tableModel = new DefaultTableModel();
jTable1.setModel(tableModel);
Luego en otras clases, dependiendo de la clase, borro todo el contenido (y las columnas)
Cita:
public static void clearDefaultTableModel(DefaultTableModel tableModel) {
tableModel.setRowCount(0);
for (int i = 0; i < tableModel.getRowCount(); i++) {
tableModel.removeRow(i);
}
String[] vector = null;
tableModel.setColumnIdentifiers(vector);
}
Cuando me toca llenar la tabla, creo los identificadores o columnas segun sea el caso, y luego inserto fila por fila

Cita:
Object[] columnNames = {"header 1","header 2","header 3"};
tableModel.setColumnIdentifiers(columnNames);

....

String[] vector = {string1,string2,string3};
tableModel.addRow(vector);

Lo que necesito es poner la tabla no editable (ya intente cambiandole la propiedad al jTable1) y ademas a la hora de recrear el modelo, colocarle el ancho de cada columna (no tiene ciencia que la columna ID sea tan grande como la columna NOMBRE por ejemplo)

Espero me puedan ayudar, ya que esto de las tablas y los modelos me ha confundido bastante.
  #2 (permalink)  
Antiguo 25/10/2011, 13:35
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: jTable y models

Hola:

Aquí http://chuwiki.chuidiang.org/index.php?title=JTable tienes cómo hacer que las celdas no sean editables.

En cuanto al ancho de columna, jTable.getColumn(...).setPreferredWidth().

Para borrar todas las filas, creo que funciona tableModel.setRowCount(0) sin necesidad de bucle.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 26/10/2011, 12:10
 
Fecha de Ingreso: septiembre-2010
Ubicación: Caracas
Mensajes: 83
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: jTable y models

muchas gracias por tu respuesta, ya hacerlas no editables.
resulta que no tenia un modelo de columnas para las tablas, pero ahora lo creo y a la hora de definir cada columna puedo usar ese metodo para colocarle el width, y el max y min

Ahora mi pregunta es la siguiente, como hago para centrar o colocar a la derecha el texto que muestra una columna? por ejemplo, en la columna ID donde se muestran puros numeros, como hago para que ellos esten centrados .

Gracias por tu ayuda

PD: se que existe una manera creando el modelo "desde 0" para que permita "reconocer" los tipos de datos que se colocan, y funcionaria muy bien si tengo un array de distintos objetos por ejemplo,pero no necesito eso, solo desearia alinear todos los datos de una columna en especifico
  #4 (permalink)  
Antiguo 26/10/2011, 12:56
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: jTable y models

Hola:

Lo de reconocer los objetos es fácil. En tu modelo heredando de DefaultTableModel, define el método getColumnClass(...) de la clase padre de forma que devuelve el tipo de objeto que hay dentro (Integer.class, por ejemplo).

La otra forma de alinear es definir un render para la celda, de forma que eres tú el que decide cómo se dibuja esa celda (busca cosas de tablecellrender en google).

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: jtable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:00.