Las clases que son esenciales para este ejemplo son JTable y TableModel.
JTable: Esta clase es utilizada para mostrar y editar tablas con 2 dimensiones.
JTable utiliza enteros para referirse tanto a las filas y las columnas, y el uso del método getValueAt (int, int) para recuperar los valores.
JTable tabla = new JTable(datos, columnas);
TableModel: Esta clase es una clase interfaz que contiene un conjunto de métodos que utilizará con JTable para manipulación de los registros.
TableModel tablaModelo = (TableModel) tabla.getModel();
Para este ejemplo crearemos dos clases:
1- DatosTabla
2- DatosTablaMain
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.TableModel;
public class DatosTabla extends JPanel {
private JTable tabla;
private JScrollPane scrollPane;
private JButton boton = new JButton("Aceptar");
public DatosTabla(String[] columnas, String[][] datos) {
JPanel p = new JPanel();
setLayout(new GridLayout());
tabla = new JTable(datos, columnas);
scrollPane = new JScrollPane(tabla);
p.add(scrollPane, BorderLayout.PAGE_START);
boton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
if ("Aceptar".equals(event.getActionCommand())) {
verificarDatos();
}
}
});
p.add(boton);
add(p, BorderLayout.CENTER);
}
public void verificarDatos() {
TableModel tablaModelo;
tablaModelo = (TableModel) tabla.getModel();
boolean avanzar = true;
int registro = tabla.getSelectedRow();
int columna = tabla.getSelectedColumn();
if (registro == -1) {
avanzar = false;
} else if (columna == -1) {
avanzar = false;
}
if (avanzar) {
String strResultado = tablaModelo.getValueAt(
tabla.getSelectedRow(),
tabla.getSelectedColumn()).toString();
JOptionPane.showMessageDialog(null, "Dato seleccionado : " + strResultado);
} else {
JOptionPane.showMessageDialog(null, "No se ha seleccionado un registro");
}
}
}
import javax.swing.JFrame;
public class DatosTablaMain {
public static void main(String args[]) {
String columnas[] = {"Código", "Nombre"};
String datos[][] = {
{"1", "Ariel"},
{"2", "Solocodigo"},
{"3", "Juez"},
{"4", "Nombre4"}
};
DatosTabla datosTabla = new DatosTabla(columnas, datos);
JFrame form = new JFrame();
form.add(datosTabla);
form.setSize(500, 600);
form.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
form.setVisible(true);
}
}
La paciencia vence toda resistencia. La cortesía vence toda oposición. Proverbios 25:15
Resultado:
Fuentes:
3 comentarios:
como lo haria mediante una consulta SLQ ,, desde una tabla que tenga en Oracle!!!
En este tema muestra un jtable con base datos, en este caso mysql. Pero el comportamiento es el mismo
http://fuentesjava.blogspot.com/2011/08/jtable-checkbox-seleccionado.html
oyes perdon pero tengo un problema tengo dos formularios una que se llama cliente y otra renta lo que quiero es que en renta en el cmpo nombre y que me aparesca los nombre pero que ya estan registrados en el cliente, aver si me puedes ayudar
Publicar un comentario