Ayuda con un JTable

jantonio001
04 de Febrero del 2005
¿Alguien sabe como puedo ocultar una columna en un JTable? Yo he probado con size = 0 pero no funciona.

chicou2
04 de Febrero del 2005
se oculta asi
jTable.setVisible(false);

dalamar
04 de Febrero del 2005
Eso es para ocultar la tabla completa, pero como se oculta una unica columna?

dalamar
04 de Febrero del 2005
[TableHideColumn.java]
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.*;

import java.awt.event.*;
import java.awt.event.*;
import java.awt.*;

public class TableHideColumn
implements ListSelectionListener {
JTable tableView;
public TableHideColumn() {
JFrame frame = new JFrame("Table");
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {System.exit(0);}});

// We specify only 2 column names, the last one is hidden
final String[] names = {"First Name", "Last Name" };
final Object[][] data = {
{"Mark", "Andrews", new Integer(1)},
{"Tom", "Ball", new Integer(2)},
{"Alan", "Chung", new Integer(3)},
};

TableModel dataModel = new AbstractTableModel() {
public int getColumnCount() { return names.length; }
public int getRowCount() { return data.length;}
public Object getValueAt(int row, int col) {return data[row][col];}
public String getColumnName(int column) {return names[column];}
public Class getColumnClass(int col) {return getValueAt(0,col).getClass();}
public void setValueAt(Object aValue, int row, int column) {
data[row][column] = aValue;
}
};

tableView = new JTable(dataModel);

ListSelectionModel listMod = tableView.getSelectionModel();
listMod.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
listMod.addListSelectionListener(this);

JScrollPane scrollpane = new JScrollPane(tableView);
scrollpane.setPreferredSize(new Dimension(300, 300));
frame.getContentPane().add(scrollpane);
frame.pack();
frame.setVisible(true);
}

public void valueChanged(ListSelectionEvent e) {
int maxRows;
int[] selRows;
Object value;

if (!e.getValueIsAdjusting()) {
selRows = tableView.getSelectedRows();

if (selRows.length > 0) {
for (int i= 0; i < 3 ; i++) {
// get Table data
TableModel tm = tableView.getModel();
value = tm.getValueAt(selRows[0],i);
System.out.print(value + " " );
}
System.out.println();
}
}
}

public static void main(String[] args) {
new TableHideColumn();
}
}

elemma
04 de Febrero del 2005
TableColumn column = null;

column=jTable.getColumnModel().getColumn(0);
//getColumn(0); el cero es la columna 0
jTable.getColumnModel().removeColumn(column);
//la otra instruccion quita la columna que escogistes