Problema kon JTable
Wenas estoy haciendo un programa kon interface en Swing,esta formado mediante pestañas,una de esas pestañas coge datos de una Base datos y los muestra en un panel mediante una JTable,hasta ahi bien,mi problema surge kuando en otra de esas pestañas ke sirve para dar de alta en la base de datos ,komo hago para actualizar la JTable para ke muestre la nueva entrada?.
Probe a poner un boton ke al pulsarlo llamaba otra vez al metodo ke krea la tabla pero nada,alguien me puede decir komo lo hago?,thx.
Probe a poner un boton ke al pulsarlo llamaba otra vez al metodo ke krea la tabla pero nada,alguien me puede decir komo lo hago?,thx.
hola amigo quisiera saber como le hases par haser
una consulta con JTable
por favor enviame el codigo
gracias
Nelson
una consulta con JTable
por favor enviame el codigo
gracias
Nelson
lo siento, esto es una prueba, quiero ver coimo funciona el foro... cya
Cuando tengas q actualizar, prueba llamando al metodo repaint(), de JTable o al metodo show().
Prueba y nos cuentas.
Prueba y nos cuentas.
El metodo repaint no me hace nada y el show no me deja usarlo.
te pongo el codigo pa ke le eches un vistazo:
class Consultas extends JPanel {
private JTable tabla;
private JScrollPane scrollPanel;
private String titulos[]={"Titulo","Prestado a","Tipo","Fecha prestamo"};
private String datos[][];
private JButton boton;
public Consultas(){
this.setAutoscrolls(true);
this.setLayout(new BorderLayout());
this.setBackground(Color.white);
boton=new JButton("Aktualizar");
hacerTabla();
boton.addMouseListener(
new MouseAdapter(){
public void mouseReleased(MouseEvent e){
hacerTabla();
}
}
);
}
public void hacerTabla(){
Connection conexion=null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conexion=DriverManager.getConnection("jdbc:odbc:BaseDatos");
}catch(Exception a){System.out.println("Falla la conexion");}
try{
Statement estamento = conexion.createStatement();
ResultSet resultado=estamento.executeQuery("SELECT * FROM Aplicacion_dejajuegos");
datos=new String[100][4];
int y=0;
while(resultado.next()){
datos[y][0]=resultado.getString("Nombre");
datos[y][1]=resultado.getString("Prestado");
datos[y][2]=resultado.getString("Tipo");
datos[y][3]=resultado.getString("Fecha Prestamo");
y++;
}
tabla=new JTable(datos,titulos);
scrollPanel=new JScrollPane(tabla);
this.add(scrollPanel,BorderLayout.CENTER);
this.add(boton,BorderLayout.SOUTH);
conexion.close();
}catch(SQLException e){System.out.println(e.getMessage());}
}
}
te pongo el codigo pa ke le eches un vistazo:
class Consultas extends JPanel {
private JTable tabla;
private JScrollPane scrollPanel;
private String titulos[]={"Titulo","Prestado a","Tipo","Fecha prestamo"};
private String datos[][];
private JButton boton;
public Consultas(){
this.setAutoscrolls(true);
this.setLayout(new BorderLayout());
this.setBackground(Color.white);
boton=new JButton("Aktualizar");
hacerTabla();
boton.addMouseListener(
new MouseAdapter(){
public void mouseReleased(MouseEvent e){
hacerTabla();
}
}
);
}
public void hacerTabla(){
Connection conexion=null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conexion=DriverManager.getConnection("jdbc:odbc:BaseDatos");
}catch(Exception a){System.out.println("Falla la conexion");}
try{
Statement estamento = conexion.createStatement();
ResultSet resultado=estamento.executeQuery("SELECT * FROM Aplicacion_dejajuegos");
datos=new String[100][4];
int y=0;
while(resultado.next()){
datos[y][0]=resultado.getString("Nombre");
datos[y][1]=resultado.getString("Prestado");
datos[y][2]=resultado.getString("Tipo");
datos[y][3]=resultado.getString("Fecha Prestamo");
y++;
}
tabla=new JTable(datos,titulos);
scrollPanel=new JScrollPane(tabla);
this.add(scrollPanel,BorderLayout.CENTER);
this.add(boton,BorderLayout.SOUTH);
conexion.close();
}catch(SQLException e){System.out.println(e.getMessage());}
}
}
table.repaint();
table.show();
¿No t deja llamra a estos metodos antes de cerrar la conexión?
table.show();
¿No t deja llamra a estos metodos antes de cerrar la conexión?
Pos no el metodo repaint no me hace nada ya ke no estoy usando la klase grafics y el show no me deja usarlo no se porke, de todos modos ya e montao una chapuza haciendo una instancia a la klase principal desde el kontrolador del boton para ke monte todo el programa otra vez aktualizado, es un poko chapuza pero funciona, muchas gracias por tu ayuda Sergio,salu2.
lo que puedes hacer es utilzar los modelos, desdes de crear una clase y extenderla de AbstractTableModel supeditar los metodos y con eso resuelves tu problema, si tienes alguna duda de como se utiliza esta clase revisa la documentacion referente a la AbstractTableModel.