Java - Insertar JTable en Jframe

   
Vista:

Insertar JTable en Jframe

Publicado por enric diaz (11 intervenciones) el 28/05/2016 14:24:06
Buenas:
Tengo un proyecto con dos clases
La clase MyTableMode contiene el modelo de la tabla
la clase Tabla despliega el modelo de tabla,entre otras cosas,en un JFrame.
Por ahora sólo consigo desplegar la parte de la tabla que contiene los datos ,sin que pueda ver las columnas
Agradecería comentarios.
Gracias anticipadas.

envío el código de las clases
//LA QUE CON TIENE EL MODELO DE TABLA
package tabla_en_jpanel;

import javax.swing.table.AbstractTableModel;

/**
*
* @author Enric
*/
public class MyTableModel extends AbstractTableModel {
//Array de los objetos con los datos de la tabla
final Object [][] data ={
{null ,null ,null,null,null },
{null ,null ,null,null,null },
{null ,null ,null,null,null },
{null ,null ,null,null,null },
{null ,null ,null,null,null }

};
//Array con los encabezamientos de las columnas
final String [] columnNames ={
"Nombre","Apellido","Pasatiempo","Años practica","Soltero/a"
};
//Numero de elementos de array de datos
@Override
public int getRowCount() {
return data.length;

}
//Numero de columnas
@Override
public int getColumnCount() {
return columnNames.length;

}
//retorno del elemento indicado
public String getColumnName(int col){
return columnNames[col];

}
//retorno de celdas
@Override
public Object getValueAt(int row, int col) {

return data[row][col];

}

//Editor predeterminado para cada celda
//public Class getColumnClass(int c){
// return null;
// return getValueAt(0,c).getClass();
// }
//Celdas Editables
public boolean isCellEditable(int row,int col){
return true;
}

//Datos tabla cambian
public void setValueAt(Object value,int row,int col){
data[row][col]=value;
fireTableCellUpdated(row,col);
}

void addColumn(String columnName) {

}
}
//LA QUE CONTIENE EL DESPLIEGUE DE LA TABLA
package tabla_en_jpanel;

import java.awt.*;

import java.awt.event.*;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;


/**
*
* @author Enric
*/
public class Tabla extends JFrame implements ActionListener{
//Crear el modelo de tabla
MyTableModel MiModelo = new MyTableModel();
//crear la tabla con el modelo MyModel
JTable tabla = new JTable(MiModelo);
//JscrollPane paRA LA TABLA
JScrollPane scrollPane = new JScrollPane(tabla);

public Tabla(){

//Panel contenedor
JFrame jFM = new JFrame("Panel");
jFM.setLayout(null);

//Definir el tamaño
tabla.setPreferredScrollableViewportSize(new Dimension (500,70));

//Agregar scrollPane a la tabla
getContentPane().add(scrollPane,BorderLayout.CENTER);

tabla.setBounds(20, 250, 600, 500);
//Añadir los componentes
jFM.add(tabla);
jFM.setLocation(100, 50);
jFM.setResizable(false);
jFM.setVisible(true);
jFM.setSize(800, 600);

}


public static void main(String[]args){
Tabla tabla = new Tabla();


}

@Override
public void actionPerformed(ActionEvent ae) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}




}
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

Insertar JTable en Jframe

Publicado por Kebo (15 intervenciones) el 31/05/2016 13:08:21
Cuando insertas un scroll a una tabla, lo que tienes que añadir al JFrame no es la tabla, sino el scroll.

1
2
3
4
5
Jtable tabla = new JTable(mimodelo);
JScrollPane	scroll_tabla = new JScrollPane(tabla);
scroll_table_ges.setPreferredSize(new Dimension(scroll_table.WIDTH, 150));
 
jFM.add(scroll_table);

y si lo haces sin scroll tienes que añadir las columnas a mano:

1
2
jFM.add(tabla.getTableHeader());
jFM.add(tabla);

Espero no equivocarme y poder haberte ayudado.
Un saludo.
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

Insertar JTable en Jframe

Publicado por Javier Lopez Vargas (10 intervenciones) el 13/06/2016 19:29:54
puedes llenarlo de la siguiente manera
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
private void setcentralgrid()throws SQLException {
 
        ctrlUsuUsuarios pedido = new ctrlUsuUsuarios();
        Object[] fila = new Object[jtCentral.getColumnCount()];
        ArrayList<Object> list = pedido.ConsultaCompleja(this.id);
 
        for(int i=0;i < list.size(); i++)
        {
            Object[] filaTemp1 = new Object[4];
            UsuUsuarios tempObj = (UsuUsuarios) list.get(i);
            filaTemp1[0] = tempObj.getId();
            filaTemp1[1] = tempObj.getStrUser();
            filaTemp1[2] = tempObj.getStrPassword();
            filaTemp1[3] = tempObj.getIdPerfil();
 
 
            tc.addRow(filaTemp1);
        }
        jtCentral.setModel(tc);
        this.ocultarColumnasCentral();
        if(jtCentral.getRowCount()>0){
            jtCentral.setRowSelectionInterval(0, 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
Imágen de perfil de Pedro Ivan

Insertar JTable en Jframe

Publicado por Pedro Ivan (15 intervenciones) el 15/06/2016 07:24:00
Hola enric diaz bueno primeramente te compartiré un código el cual investigue ara ayudarte con tu problema el cual fui comentando el código de como insertar un jtable en un JFrame espero y te sirva.

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.JScrollPane;
import javax.swing.JFrame;
import java.awt.*;
import java.awt.event.*;
 
public class SimpleTable3 extends JFrame {
public SimpleTable3() {
super("Ejemplo 3");
 
//creamos el arreglo de objetos que contendra el 
//contenido de las columnas 
Object[] data = new Object[5];
 
// creamos el modelo de Tabla 
DefaultTableModel dtm= new DefaultTableModel();
 
// se crea la Tabla con el modelo DefaultTableModel 
final JTable table = new JTable(dtm);
 
// insertamos las columnas 
for(int column = 0; column < 5; column++){
dtm.addColumn("Columna " + column);
}
 
// insertamos el contenido de las columnas 
for(int row = 0; row < 10; row++) {
for(int column = 0; column < 5; column++) {
data[column] = "Celda " + row + "," + column;
}
dtm.addRow(data);
}
 
//se define el tamaño 
table.setPreferredScrollableViewportSize(new Dimension(500, 70));
 
//Creamos un JscrollPane y le agregamos la JTable 
JScrollPane scrollPane = new JScrollPane(table);
 
//Agregamos el JScrollPane al contenedor 
getContentPane().add(scrollPane, BorderLayout.CENTER);
 
//manejamos la salida 
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
 
public static void main(String[] args) {
SimpleTable3 frame = new SimpleTable3();
frame.pack();
frame.setVisible(true);
}
}
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