Java - Oculta Columna jTable

   
Vista:

Oculta Columna jTable

Publicado por Leo (4 intervenciones) el 27/04/2016 05:25:27
Hola gente tengo tengo un jTable con todos los campos de la base de datos, pero la columna de id_proveedor quisiera ocultarla de la vista del usuario, pero necesito dicho valor para obtener el id de jtable que el usuario a seleccionado. A continuacion les dejo el codigo de la clase donde armo el jtable. Muchas gracias

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public DefaultTableModel modeloTabla() throws SQLException, ClassNotFoundException {
	Statement st = Conexion.conectar();
	ResultSet rs = st.executeQuery("SELECT id_proveedor, nombreProveedor AS nombre, telefonoproveedor AS telefono, direccionproveedor AS direccion, emailproveedor AS email FROM Proveedor");
	ResultSetMetaData rsmt = null;
	rsmt = rs.getMetaData();
	DefaultTableModel varModeloTabla = new DefaultTableModel();
 
	for(int i=0;i<rsmt.getColumnCount();i++){
		varModeloTabla.addColumn(rsmt.getColumnName(i+1));
	}
	Object[] fila = null;
	fila = new Object[rsmt.getColumnCount()];
	while (rs.next()) {
		for (int i = 0; i < rsmt.getColumnCount(); i++) {
			fila[i] = rs.getObject(i + 1);
		}
		varModeloTabla.addRow(fila);
	}
	return varModeloTabla;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Oculta Columna jTable

Publicado por Yamil Bracho (2072 intervenciones) el 27/04/2016 05:43:32
Puedes hacerlo de dos maneras :
1) Colocar el tamano d la columna en cero
1
2
3
table.getColumnModel().getColumn(1).setMinWidth(0);
   table.getColumnModel().getColumn(1).setMaxWidth(0);
   table.getColumnModel().getColumn(1).setWidth(0);
2) Remueves la columna de la vista pero la dejas en el modelo para obtener el valor del id
1
2
table.removeColumn(table.getColumnModel().getColumn(1));
table.getModel().getValueAt(table.getSelectedRow(),1);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Oculta Columna jTable

Publicado por Leo (4 intervenciones) el 27/04/2016 06:30:27
Me lo marca como error a eso.. lo hice de la siguiente manera. Lo que esta en negrita me lo subraya en rojo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public DefaultTableModel modeloTabla() throws SQLException, ClassNotFoundException{
	Statement st = Conexion.conectar();
	ResultSet rs = st.executeQuery("SELECT id_proveedor, nombreProveedor AS nombre, telefonoproveedor AS telefono, direccionproveedor AS direccion, emailproveedor AS email FROM Proveedor");
	ResultSetMetaData rsmt = null;
	rsmt = rs.getMetaData();
	DefaultTableModel varModeloTabla = new DefaultTableModel();
	varModeloTabla.getColumnModel().getColumn(1).setMinWidth(0);
	varModeloTabla.getColumnModel().getColumn(1).setMaxWidth(0);
	varModeloTabla.getColumnModel().getColumn(1).setWidth(0);
	for(int i=0;i<rsmt.getColumnCount();i++){
		varModeloTabla.addColumn(rsmt.getColumnName(i+1));
	}
	Object[] fila = null;
	fila = new Object[rsmt.getColumnCount()];
	while (rs.next()) {
		for (int i = 0; i < rsmt.getColumnCount(); i++) {
			fila[i] = rs.getObject(i + 1);
		}
		varModeloTabla.addRow(fila);
	}
	return varModeloTabla;
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Oculta Columna jTable

Publicado por Yamil Bracho (2072 intervenciones) el 27/04/2016 06:36:54
getColumnModel() es un metodo del objetoJTable y no de DefaultTableModel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Oculta Columna jTable

Publicado por drozz (12 intervenciones) el 27/04/2016 06:47:21
yo vi un codigo que me funciono por aca... creo es algo similar
http://yachingamos.com/question/agregar-datos-a-una-jtable-sin-mostrarlos/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Oculta Columna jTable

Publicado por Leo (4 intervenciones) el 27/04/2016 07:02:05
Gracias voy a intentar hacerlo funcionar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Oculta Columna jTable

Publicado por juan (8 intervenciones) el 27/04/2016 08:29:06
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
 
public class DatosTabla {
    public static void main(String... ass) {
        //creaas la tabla con un modelo por default
        DefaultTableModel modelo = new DefaultTableModel();
        JTable tabla = new JTable (modelo);
        modelo.addColumn("Col1");
        modelo.addColumn("Col2");
        modelo.addColumn("Col3");
        //agregas los datos normal
        String []data = {"datoOculto1","dato1","dato2"};
        modelo.addRow(data);
        String []data2  = {"datoOculto2","dato1","dato2"};
        modelo.addRow(data2);
        //eliminas la columna de la tabla, nota: removeColumn solo elimina la columna de la parte grafica, mas no los datos
        tabla.removeColumn(tabla.getColumnModel().getColumn(0));
 
 
        JFrame ventana = new JFrame();
        ventana.setDefaultCloseOperation(ventana.EXIT_ON_CLOSE);
        ventana.setVisible(true);
        ventana.setLayout(null);
        ventana.setSize(200,200);
        tabla.setBounds(0,0,180,180);
        ventana.add(tabla);
 
        //ahora si quieres obtener los datos de la columna eliminada tienes que 
        //sacarlos del modelo de la tabla, mas no de la tabla directamente
        System.out.println(tabla.getModel().getValueAt(0,0));
        System.out.println(tabla.getModel().getValueAt(1,0));
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar