una - jtable java netbeans
JTable no mostrarĂ¡ encabezados de columna (4)
Coloque su JTable
dentro de JScrollPane
. Prueba esto:
add(new JScrollPane(scrTbl));
Tengo el siguiente código para crear una instancia de JTable: la tabla aparece con el número correcto de filas y columnas, pero no hay ningún signo de los títulos encima de las columnas.
public Panel1()
{
int nmbrRows;
setLayout(null);
setBackground(Color.magenta);
Vector colHdrs;
//create column headers
colHdrs = new Vector(10);
colHdrs.addElement(new String("Ticker"));
// more statements like the above to establish all col. titles
nmbrRows = 25;
DefaultTableModel tblModel = new DefaultTableModel(nmbrRows, colHdrs.size());
tblModel.setColumnIdentifiers(colHdrs);
scrTbl = new JTable(tblModel);
scrTbl.setBounds(25, 50, 950, 600);
scrTbl.setBackground(Color.gray);
scrTbl.setRowHeight(23);
add(scrTbl);
//rest of constructor
...
}
Comparando esto con otro código de fabricación de tablas, no veo ningún paso que falte, pero algo debe estar ausente.
Como se dijo en las respuestas anteriores, la forma "normal" es agregarlo a un JScrollPane, pero a veces no desea que se desplace (no me pregunte cuándo :)). Luego puede agregar el TableHeader usted mismo. Me gusta esto:
JPanel tablePanel = new JPanel(new BorderLayout());
JTable table = new JTable();
tablePanel.add(table, BorderLayout.CENTER);
tablePanel.add(table.getTableHeader(), BorderLayout.NORTH);
La principal diferencia entre esta respuesta y la aceptada es el uso de setViewportView()
lugar de add()
.
Cómo poner JTable
en JScrollPane
usando Eclipse IDE:
- Cree el contenedor
JScrollPane
través de la pestaña Diseño. - Estire
JScrollPane
al tamaño deseado (se aplica al diseño absoluto). - Arrastre y suelte el componente
JTable
encima deJScrollPane
(área de la vista).
En Estructura> Componentes, la table
debe ser un elemento secundario de scrollPane
.
El código generado sería algo como esto:
JScrollPane scrollPane = new JScrollPane();
...
JTable table = new JTable();
scrollPane.setViewportView(table);
public table2() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 485, 218);
setTitle("jtable");
getContentPane().setLayout(null);
String data[][] = { { "Row1/1", "Row1/2", "Row1/3" },
{ "Row2/1", "Row2/2", "Row2/3" },
{ "Row3/1", "Row3/2", "Row3/3" },
{ "Row4/1", "Row4/2", "Row4/3" }, };
String header[] = { "Column 1", "Column 2", "Column 3" };
// Table
JTable table = new JTable(data,header);
// ScrollPane
JScrollPane scrollPane = new JScrollPane(table);
scrollPane.setBounds(36, 37, 407, 79);
getContentPane().add(scrollPane);
}
}
¡¡prueba esto!!