The::Beastieux

Sangre de Bestia + Corazón de Pingüino | Un blog acerca de Linux, *BSD, Open Source, Software Libre, Programación …

Código Java – Ocultar Columnas de un JTable


Este es el Ejemplo #03 del Topic: Programación Gráfica en Java.

Lo que el siguiente procedimiento realiza es recibir como parámetro a la tabla y un array de tipo entero con los índices de las columnas que se desean ocultar. Los índice de las columnas empiezan desde el 0.

...
    private void setOcultarColumnasJTable(JTable tbl, int columna[])
    {
        for(int i=0;i<columna.length;i++)
             tbl.getColumnModel().getColumn(columna[i]).setMaxWidth(0);
             tbl.getColumnModel().getColumn(columna[i]).setMinWidth(0);
             tbl.getTableHeader().getColumnModel().getColumn(columna[i]).setMaxWidth(0);
             tbl.getTableHeader().getColumnModel().getColumn(columna[i]).setMinWidth(0);
        }
    }
...

Código de Ejemplo:

package beastieux.gui;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author beastieux
 */
public class Ejm03_OcultarColumnasJTable extends JFrame{
    public Ejm03_OcultarColumnasJTable()
    {

        JTable tblEjemplo = new JTable();
        JScrollPane scpEjemplo= new JScrollPane();

        //Llenamos el modelo
        DefaultTableModel dtmEjemplo = new DefaultTableModel(getFilas(),
                                                             getColumnas());

        tblEjemplo.setModel(dtmEjemplo);
        scpEjemplo.add(tblEjemplo);
        this.add(scpEjemplo);
        this.setSize(500, 200);
        scpEjemplo.setViewportView(tblEjemplo);

        setOcultarColumnasJTable(tblEjemplo,new int[]{0,3});

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
    }

    //Datos de las filas
    private Object[][] getFilas()
    {
         Object fila[][]=new Object[][] {
                            {"a1", "b1", "c1", "d1"},
                            {"a2", "b2", "c2", "d2"},
                            {"a3", "b3", "c3", "d3"}};
         return fila;
    }

    //Encabezados de la tabla
    private String[] getColumnas()
    {
          String columna[]=new String[]{"A","B","C", "D"};
          return columna;
    }

    private void setOcultarColumnasJTable(JTable tbl, int columna[])
    {
        for(int i=0;i<columna.length;i++)
        {
             tbl.getColumnModel().getColumn(columna[i]).setMaxWidth(0);
             tbl.getColumnModel().getColumn(columna[i]).setMinWidth(0);
             tbl.getTableHeader().getColumnModel().getColumn(columna[i]).setMaxWidth(0);
             tbl.getTableHeader().getColumnModel().getColumn(columna[i]).setMinWidth(0);
        }
    }

    public static void main(String args[]) {
        Ejm03_OcultarColumnasJTable obj = new Ejm03_OcultarColumnasJTable();
        obj.setVisible(true);
    }
}

4 Responses to Código Java – Ocultar Columnas de un JTable

  1. Rodrigo Bertoa abril 27, 2012 a las 5:19 am

    Yo le pongo todos los parametros de ancho en 0 y me queda una columna pequeñita pero aun visible… que estoy haciendo mal?

  2. Anónimo febrero 22, 2012 a las 1:52 am

    gracias, ,me ha sido de ayuda!!

  3. linuxerito octubre 17, 2011 a las 5:26 pm

    Una mehor solucion aqui
    La defines en una clase final de java este metodo para que sea reutilizable
    Espero te sirva mucho:
    este metodo recibi dos parametros
    final JTable tabla => la jtable en la que quieres ocultar las columnas
    final int… Columnas=> las columnas que quieres ocultar le pasas cualquier cantidad de columnas.

    public static void OcultarColumnasJtable(final JTable tabla, final int… Columnas) {
    try {
    for (int i : Columnas) {
    tabla.getColumn(tabla.getColumnName(i)).setWidth(0);//Ancho de la columna
    tabla.getColumn(tabla.getColumnName(i)).setMinWidth(0);//Ancho minimo de la columna 0
    tabla.getColumn(tabla.getColumnName(i)).setMaxWidth(0);//Ancho maximo de la columna
    }
    } catch (ArrayIndexOutOfBoundsException e) {
    }
    }

  4. bagl octubre 2, 2011 a las 5:08 pm

    GRACIAS!!
    Era tan sencillo pero no daba con la solución

No te quedes callado. Pregunta, Comenta, Comparte, Sígueme, Suscríbete, Déjame tu opinión... Soy Beastieux Zeroo...

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.

Únete a otros 65 seguidores