Buenas Tardes a la comunidad, mi nombre es sebastian y estoy creando un CRUD sin base de datos, estoy haciendo un codigo paso a paso, me he estancando en agregar una tabla dentro de mi código para que aparezcan los botones y la tabla a medida que se van ingresando. Les pido mis disculpas de antemano y espero me puedan ayudar. gracias.
si me equivoque es postear, soy novato en este foro. :-[
package menu;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JPanel;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.WindowConstants;
import javax.swing.JOptionPane; // de aca en adelante para asignar accion al boton
import javax.swing.JButton;
import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Scanner;
public class MenuPrincipal{
private JFrame frame;
private JPanel panelSuperior;
private JPanel panelInferior;
private JPanel panelBoton;
private JLabel titulo;
private JLabel JLabel1;
private JTextField JText1;
private JLabel JLabel2;
private JTextField JText2;
private JLabel JLabel3;
private JTextField JText3;
private JLabel JLabel4;
private JTextField JText4;
private JLabel JLabel5;
private JTextField JText5;
private JLabel JLabel6;
private JComboBox combo;
private JButton btnregistrar;
private JButton btnconsultar;
private JButton btnborrar;
private JButton btnmodificar;
private JButton btnlimpiar;
private JScrollPane jScrollPane;
private JTable tabla;
public MenuPrincipal() {
construyePanelSuperior();
construyePanelInferior();
construyePanelBoton();
construyeVentana();
}
//metodo para agregar las filas
int filas=0;
private void agregarFila(){
// se crea un modelo para la tabla, el nombre de la variable de la tabla es: tabla
DefaultTableModel modelo=(DefaultTableModel) tabla.getModel();
//se agrega la fila en la tabla con un valor vacio
modelo.addRow(new Object[filas]);
//para agregar valores en la fila
tabla.setValueAt("Juanito",filas , 0);
tabla.setValueAt("perez", filas, 1);
tabla.setValueAt("perez", filas, 2);
//primero va el valor del campoo despues el numero de la fila y por ultimo el numero de la columna
filas++;
//el numero de las filas y columnas empieza en cero
}
public void construyePanelSuperior(){
panelSuperior = new JPanel();
panelSuperior.setLayout(new FlowLayout());
panelSuperior.setBackground(Color.LIGHT_GRAY);
titulo = new JLabel("Ingreso de Datos");
panelSuperior.add(titulo);
}
public void construyePanelInferior() {
panelInferior = new JPanel();
panelInferior.setLayout(new GridLayout(3, 8, 12, 30)); // FILAS COLUMNAS
// LARGO ANCHO
JLabel1 = new JLabel(" Rut : ");
JText1 = new JTextField(10);
JLabel2 = new JLabel(" Nombre : ");
JText2 = new JTextField(10);
JLabel3 = new JLabel(" Apellido : ");
JText3 = new JTextField(10);
JLabel4 = new JLabel(" Dirección : ");
JText4 = new JTextField(10);
JLabel5 = new JLabel(" Teléfono : ");
JText5 = new JTextField(10);
JLabel6 = new JLabel(" Ciudad :");
combo = new JComboBox();
combo.addItem("Valparaiso");// AGREGAR OPCIONES COMBO
combo.addItem("Viña del Mar");
combo.addItem("Villa Alemana");
combo.addItem("Santiago");
combo.addItem("Pto. Montt");
panelInferior.add(JLabel1);
panelInferior.add(JText1);
panelInferior.add(JLabel2);
panelInferior.add(JText2);
panelInferior.add(JLabel3);
panelInferior.add(JText3);
panelInferior.add(JLabel4);
panelInferior.add(JText4);
panelInferior.add(JLabel5);
panelInferior.add(JText5);
panelInferior.add(JLabel6);
panelInferior.add(combo);
}
public void construyePanelBoton() {
// se da formato a panel
panelBoton = new JPanel();
panelBoton.setLayout(new FlowLayout(FlowLayout.CENTER));
// se le da accion al boton registrar
btnregistrar = new JButton("Registrar");
btnregistrar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
JOptionPane.showMessageDialog(null,"Usuario Registrado");
}
});
// se le da accion al boton borrar
btnborrar = new JButton("Borrar");
btnborrar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
JOptionPane.showMessageDialog(null,"Usuario Eliminado");
}
});
// se le da accion al boton modificar
btnmodificar = new JButton("Modificar");
btnmodificar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
JOptionPane.showMessageDialog(null,"Usuario Modificado");
}
});
// se le da accion al boton consultar
btnconsultar = new JButton("Consultar");
btnconsultar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
JOptionPane.showMessageDialog(null,"Consulta Exitosa");
}
});
// se le da accion al boton Limpiar OK!!!!!!!!!!!!!!!!!!!!!!!!!
btnlimpiar = new JButton("Limpiar");
btnlimpiar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
JOptionPane.showMessageDialog(null,"Datos Limpiados");
JText1.setText("");
JText2.setText("");
JText3.setText("");
JText4.setText("");
JText5.setText("");
combo.setSelectedIndex(0);
}
});
// aca se agregan los paneles y botones
panelBoton.add(btnregistrar);
panelBoton.add(btnborrar);
panelBoton.add(btnmodificar);
panelBoton.add(btnconsultar);
panelBoton.add(btnlimpiar);
}
public void construyeVentana() {
frame = new JFrame(" ");
frame.add(panelSuperior);
frame.add(panelInferior);
frame.add(panelBoton);
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setTitle("Ingreso de Datos Clientes Ver. 1.0"); // borde titulo pantalla
}
public static void main(String[] arg) {
new MenuPrincipal();
}
}
Disculpa, pero no entiendo muy bien lo que deseas. ¿Lo que quieres es agregar los datos de los JTextField's a tu Tabla?
String ruc = JText1.getText();
String nombre = JText2.getText();
String apellido = JText3.getText();
String direccion= JText4.getText()
String telefono = JText5.getText();
String ciudad = combo.getSelectedItem().toString();
// agregamos los datos a la fila Object
Object[] datos = {ruc,nombre,apellido,direccion,telefono,ciudad};
modelo.addRow(datos);
si amigo, además no me muestra la tabla por pantalla.
coloqué tu código y no me resulto............ :(
estoy tratando de hacer algo asi
(http://1.bp.blogspot.com/-LpvY-Yir4Vw/UQbRVBtVv6I/AAAAAAAAAPc/vhLa7URFUMY/s320/+_001.png)
package menu;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JPanel;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.WindowConstants;
import javax.swing.JOptionPane; // de aca en adelante para asignar accion al boton
import javax.swing.JButton;
import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Scanner;
public class MenuPrincipal{
private JFrame frame;
private JPanel panelSuperior;
private JPanel panelInferior;
private JPanel panelBoton;
private JLabel titulo;
private JLabel JLabel1;
private JTextField JText1;
private JLabel JLabel2;
private JTextField JText2;
private JLabel JLabel3;
private JTextField JText3;
private JLabel JLabel4;
private JTextField JText4;
private JLabel JLabel5;
private JTextField JText5;
private JLabel JLabel6;
private JComboBox combo;
private JButton btnregistrar;
private JButton btnconsultar;
private JButton btnborrar;
private JButton btnmodificar;
private JButton btnlimpiar;
private JScrollPane jScrollPane;
private JTable tabla;
public MenuPrincipal() {
construyePanelSuperior();
construyePanelInferior();
construyePanelBoton();
construyeVentana();
}
//metodo para agregar las filas
int filas=0;
private void agregarFila(){
// se crea un modelo para la tabla, el nombre de la variable de la tabla es: tabla
DefaultTableModel modelo=(DefaultTableModel) tabla.getModel();
//se agrega la fila en la tabla con un valor vacio
modelo.addRow(new Object[filas]);
String rut = JText1.getText();
String nombre = JText2.getText();
String apellido = JText3.getText();
String direccion= JText4.getText();
String telefono = JText5.getText();
String ciudad = combo.getSelectedItem().toString();
// agregamos los datos a la fila Object
Object[] datos = {rut,nombre,apellido,direccion,telefono,ciudad};
modelo.addRow(datos);
}
public void construyePanelSuperior(){
panelSuperior = new JPanel();
panelSuperior.setLayout(new FlowLayout());
panelSuperior.setBackground(Color.LIGHT_GRAY);
titulo = new JLabel("Ingreso de Datos");
panelSuperior.add(titulo);
}
public void construyePanelInferior() {
panelInferior = new JPanel();
panelInferior.setLayout(new GridLayout(3, 8, 12, 30)); // FILAS COLUMNAS
// LARGO ANCHO
JLabel1 = new JLabel(" Rut : ");
JText1 = new JTextField(10);
JLabel2 = new JLabel(" Nombre : ");
JText2 = new JTextField(10);
JLabel3 = new JLabel(" Apellido : ");
JText3 = new JTextField(10);
JLabel4 = new JLabel(" Dirección : ");
JText4 = new JTextField(10);
JLabel5 = new JLabel(" Teléfono : ");
JText5 = new JTextField(10);
JLabel6 = new JLabel(" Ciudad :");
combo = new JComboBox();
combo.addItem("Valparaiso");// AGREGAR OPCIONES COMBO
combo.addItem("Viña del Mar");
combo.addItem("Villa Alemana");
combo.addItem("Santiago");
combo.addItem("Pto. Montt");
panelInferior.add(JLabel1);
panelInferior.add(JText1);
panelInferior.add(JLabel2);
panelInferior.add(JText2);
panelInferior.add(JLabel3);
panelInferior.add(JText3);
panelInferior.add(JLabel4);
panelInferior.add(JText4);
panelInferior.add(JLabel5);
panelInferior.add(JText5);
panelInferior.add(JLabel6);
panelInferior.add(combo);
}
public void construyePanelBoton() {
// se da formato a panel
panelBoton = new JPanel();
panelBoton.setLayout(new FlowLayout(FlowLayout.CENTER));
// se le da accion al boton registrar
btnregistrar = new JButton("Registrar");
btnregistrar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
JOptionPane.showMessageDialog(null,"Usuario Registrado");
}
});
// se le da accion al boton borrar
btnborrar = new JButton("Borrar");
btnborrar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
JOptionPane.showMessageDialog(null,"Usuario Eliminado");
}
});
// se le da accion al boton modificar
btnmodificar = new JButton("Modificar");
btnmodificar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
JOptionPane.showMessageDialog(null,"Usuario Modificado");
}
});
// se le da accion al boton consultar
btnconsultar = new JButton("Consultar");
btnconsultar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
JOptionPane.showMessageDialog(null,"Consulta Exitosa");
}
});
// se le da accion al boton Limpiar OK!!!!!!!!!!!!!!!!!!!!!!!!!
btnlimpiar = new JButton("Limpiar");
btnlimpiar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
JOptionPane.showMessageDialog(null,"Datos Limpiados");
JText1.setText("");
JText2.setText("");
JText3.setText("");
JText4.setText("");
JText5.setText("");
combo.setSelectedIndex(0);
}
});
// aca se agregan los paneles y botones
panelBoton.add(btnregistrar);
panelBoton.add(btnborrar);
panelBoton.add(btnmodificar);
panelBoton.add(btnconsultar);
panelBoton.add(btnlimpiar);
}
public void construyeVentana() {
frame = new JFrame(" ");
frame.add(panelSuperior);
frame.add(panelInferior);
frame.add(panelBoton);
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setTitle("Ingreso de Datos Clientes Ver. 1.0"); // borde titulo pantalla
}
public static void main(String[] arg) {
new MenuPrincipal();
}
}
He probado tu codigo y solo se ve visible un panel de botones...
Crear e inicializar la tabla:
String nombreColumnas[] = {"Ruc","Nombre","Apellido","Direccion","Ciudad"};
private void itializeComponent()
{
jsp1 = new JScrollPane();
modelo1 = new DefaultTableModel(null,nombreColumnas);
tabla1 = new JTable(modelo1);
jsp1.setViewportView(tabla1);
}
Insertar datos en la tabla:
private voidd insertarData() {
// recuperamos los valores
String ruc = JText1.getText();
String nombre = JText2.getText();
String apellido = JText3.getText();
String direccion= JText4.getText()
String telefono = JText5.getText();
String ciudad = combo.getSelectedItem().toString();
// los agregamos a la tabla
modelo1.insertRow(modelo1.getRowCount(),new Object[]{ruc, nombre, apellido, direccion, telefono, ciudad});
}
Recuperar datos de la tabla:
private void getDatosDeTabla() {
int nrow = tabla.getRowCount(); // numero de filas
int col=tabla.getColumnCount(); // numero de columnas
String[][] sArray=new String[nrow][col]; //por si quieres almacenar los datos de tu columna en una matriz del tipo String
for(int i=0;i<nrow;i++){
for (int j=0;j<col;j++){
sArray[i][j]=tabla.getModel().getValueAt(i,j).toString();
}
}
}
Primero que todo, muchas gracias por tu ayuda con respecto al código, en que parte debería pegar ese código, lo coloqué donde estaba creando mi tabla y aún no resulta :-\
package menu;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JPanel;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.WindowConstants;
import javax.swing.JOptionPane; // de aca en adelante para asignar accion al boton
import javax.swing.JButton;
import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Scanner;
public class MenuPrincipal{
private JFrame frame;
private JPanel panelSuperior;
private JPanel panelInferior;
private JPanel panelBoton;
private JLabel titulo;
private JLabel JLabel1;
private JTextField JText1;
private JLabel JLabel2;
private JTextField JText2;
private JLabel JLabel3;
private JTextField JText3;
private JLabel JLabel4;
private JTextField JText4;
private JLabel JLabel5;
private JTextField JText5;
private JLabel JLabel6;
private JComboBox combo;
private JButton btnregistrar;
private JButton btnconsultar;
private JButton btnborrar;
private JButton btnmodificar;
private JButton btnlimpiar;
private JScrollPane jScrollPane;
private JTable tabla;
public MenuPrincipal() {
construyePanelSuperior();
construyePanelInferior();
construyePanelBoton();
construyeVentana();
}
String nombreColumnas[] = {"Ruc","Nombre","Apellido","Direccion","Ciudad"};
private void itializeComponent()
{
JScrollPane jsp1 = new JScrollPane();
DefaultTableModel modelo1 = new DefaultTableModel(null,nombreColumnas);
JTable tabla1 = new JTable(modelo1);
jsp1.setViewportView(tabla1);
}
private void insertarData() {
// recuperamos los valores
String ruc = JText1.getText();
String nombre = JText2.getText();
String apellido = JText3.getText();
String direccion= JText4.getText();
String telefono = JText5.getText();
String ciudad = combo.getSelectedItem().toString();
// los agregamos a la tabla
DefaultTableModel modelo1 = null;
modelo1.insertRow(modelo1.getRowCount(),new Object[]{ruc, nombre, apellido, direccion, telefono, ciudad});
}
private void getDatosDeTabla() {
int nrow = tabla.getRowCount(); // numero de filas
int col=tabla.getColumnCount(); // numero de columnas
String[][] sArray=new String[nrow][col]; //por si quieres almacenar los datos de tu columna en una matriz del tipo String
for(int i=0;i<nrow;i++){
for (int j=0;j<col;j++){
sArray[i][j]=tabla.getModel().getValueAt(i,j).toString();
}
}
}
public void construyePanelSuperior(){
panelSuperior = new JPanel();
panelSuperior.setLayout(new FlowLayout());
panelSuperior.setBackground(Color.LIGHT_GRAY);
titulo = new JLabel("Ingreso de Datos");
panelSuperior.add(titulo);
}
public void construyePanelInferior() {
panelInferior = new JPanel();
panelInferior.setLayout(new GridLayout(3, 8, 12, 30)); // FILAS COLUMNAS
// LARGO ANCHO
JLabel1 = new JLabel(" Rut : ");
JText1 = new JTextField(10);
JLabel2 = new JLabel(" Nombre : ");
JText2 = new JTextField(10);
JLabel3 = new JLabel(" Apellido : ");
JText3 = new JTextField(10);
JLabel4 = new JLabel(" Dirección : ");
JText4 = new JTextField(10);
JLabel5 = new JLabel(" Teléfono : ");
JText5 = new JTextField(10);
JLabel6 = new JLabel(" Ciudad :");
combo = new JComboBox();
combo.addItem("Valparaiso");// AGREGAR OPCIONES COMBO
combo.addItem("Viña del Mar");
combo.addItem("Villa Alemana");
combo.addItem("Santiago");
combo.addItem("Pto. Montt");
panelInferior.add(JLabel1);
panelInferior.add(JText1);
panelInferior.add(JLabel2);
panelInferior.add(JText2);
panelInferior.add(JLabel3);
panelInferior.add(JText3);
panelInferior.add(JLabel4);
panelInferior.add(JText4);
panelInferior.add(JLabel5);
panelInferior.add(JText5);
panelInferior.add(JLabel6);
panelInferior.add(combo);
}
public void construyePanelBoton() {
// se da formato a panel
panelBoton = new JPanel();
panelBoton.setLayout(new FlowLayout(FlowLayout.CENTER));
// se le da accion al boton registrar
btnregistrar = new JButton("Registrar");
btnregistrar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
JOptionPane.showMessageDialog(null,"Usuario Registrado");
}
});
// se le da accion al boton borrar
btnborrar = new JButton("Borrar");
btnborrar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
JOptionPane.showMessageDialog(null,"Usuario Eliminado");
}
});
// se le da accion al boton modificar
btnmodificar = new JButton("Modificar");
btnmodificar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
JOptionPane.showMessageDialog(null,"Usuario Modificado");
}
});
// se le da accion al boton consultar
btnconsultar = new JButton("Consultar");
btnconsultar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
JOptionPane.showMessageDialog(null,"Consulta Exitosa");
}
});
// se le da accion al boton Limpiar OK!!!!!!!!!!!!!!!!!!!!!!!!!
btnlimpiar = new JButton("Limpiar");
btnlimpiar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
JOptionPane.showMessageDialog(null,"Datos Limpiados");
JText1.setText("");
JText2.setText("");
JText3.setText("");
JText4.setText("");
JText5.setText("");
combo.setSelectedIndex(0);
}
});
// aca se agregan los paneles y botones
panelBoton.add(btnregistrar);
panelBoton.add(btnborrar);
panelBoton.add(btnmodificar);
panelBoton.add(btnconsultar);
panelBoton.add(btnlimpiar);
}
public void construyeVentana() {
frame = new JFrame(" ");
frame.add(panelSuperior);
frame.add(panelInferior);
frame.add(panelBoton);
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setTitle("Ingreso de Datos Clientes Ver. 1.0"); // borde titulo pantalla
}
public static void main(String[] arg) {
new MenuPrincipal();
}
}
Primero, no crees e instancies tus controles en el constructor. Porque luego de salir del constructor desaparecerán. Primero declara los contorles.
private DefaultTableModel modelo1;
private JTable tabla1;
JScrollPane jsp1;
private void itializeComponent()
{
jsp1 = new JScrollPane();
modelo1 = new DefaultTableModel(null,nombreColumnas);
tabla1 = new JTable(modelo1);
jsp1.setViewportView(tabla1);
}
Segundo, tú creaste tu control JScrollPane así:
private JScrollPane jScrollPane;
Yo lo hice así:
Private JScrollPane sp1;
¿Por qué tienes 2?
Y en tercer lugar, es obvio que tienes que llamar al método insertarData dentro del botón que va a agregar los datos a la tabla.
nada aun :-\ quizás empieze el código de nuevo por que no tiene solución, la idea es hacer un CRUD Y UN JTABLE. :C
package menu;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JPanel;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.WindowConstants;
import javax.swing.JOptionPane; // de aca en adelante para asignar accion al boton
import javax.swing.JButton;
import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Scanner;
import java.util.Vector;
public class MenuPrincipal{
private JFrame frame;
private JPanel panelSuperior;
private JPanel panelInferior;
private JPanel panelBoton;
private JLabel titulo;
private JLabel JLabel1;
private JTextField JText1;
private JLabel JLabel2;
private JTextField JText2;
private JLabel JLabel3;
private JTextField JText3;
private JLabel JLabel4;
private JTextField JText4;
private JLabel JLabel5;
private JTextField JText5;
private JLabel JLabel6;
private JComboBox combo;
private JButton btnregistrar;
private JButton btnconsultar;
private JButton btnborrar;
private JButton btnmodificar;
private JButton btnlimpiar;
private JScrollPane jScrollPane;
private JTable tabla;
private void itializeComponent()
{
jsp1 = new JScrollPane();
Vector nombreColumnas = null;
modelo1 = new DefaultTableModel(null,nombreColumnas);
tabla1 = new JTable(modelo1);
jsp1.setViewportView(tabla1);
}
public MenuPrincipal() {
construyePanelSuperior();
construyePanelInferior();
construyePanelBoton();
construyeVentana();
}
private DefaultTableModel modelo1;
private JTable tabla1;
JScrollPane jsp1;
public void construyePanelSuperior(){
panelSuperior = new JPanel();
panelSuperior.setLayout(new FlowLayout());
panelSuperior.setBackground(Color.LIGHT_GRAY);
titulo = new JLabel("Ingreso de Datos");
panelSuperior.add(titulo);
}
public void construyePanelInferior() {
panelInferior = new JPanel();
panelInferior.setLayout(new GridLayout(3, 8, 12, 30)); // FILAS COLUMNAS
// LARGO ANCHO
JLabel1 = new JLabel(" Rut : ");
JText1 = new JTextField(10);
JLabel2 = new JLabel(" Nombre : ");
JText2 = new JTextField(10);
JLabel3 = new JLabel(" Apellido : ");
JText3 = new JTextField(10);
JLabel4 = new JLabel(" Dirección : ");
JText4 = new JTextField(10);
JLabel5 = new JLabel(" Teléfono : ");
JText5 = new JTextField(10);
JLabel6 = new JLabel(" Ciudad :");
combo = new JComboBox();
combo.addItem("Valparaiso");// AGREGAR OPCIONES COMBO
combo.addItem("Viña del Mar");
combo.addItem("Villa Alemana");
combo.addItem("Santiago");
combo.addItem("Pto. Montt");
panelInferior.add(JLabel1);
panelInferior.add(JText1);
panelInferior.add(JLabel2);
panelInferior.add(JText2);
panelInferior.add(JLabel3);
panelInferior.add(JText3);
panelInferior.add(JLabel4);
panelInferior.add(JText4);
panelInferior.add(JLabel5);
panelInferior.add(JText5);
panelInferior.add(JLabel6);
panelInferior.add(combo);
}
public void construyePanelBoton() {
// se da formato a panel
panelBoton = new JPanel();
panelBoton.setLayout(new FlowLayout(FlowLayout.CENTER));
// se le da accion al boton registrar
btnregistrar = new JButton("Registrar");
btnregistrar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
JOptionPane.showMessageDialog(null,"Usuario Registrado");
}
});
// se le da accion al boton borrar
btnborrar = new JButton("Borrar");
btnborrar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
JOptionPane.showMessageDialog(null,"Usuario Eliminado");
}
});
// se le da accion al boton modificar
btnmodificar = new JButton("Modificar");
btnmodificar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
JOptionPane.showMessageDialog(null,"Usuario Modificado");
}
});
// se le da accion al boton consultar
btnconsultar = new JButton("Consultar");
btnconsultar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
JOptionPane.showMessageDialog(null,"Consulta Exitosa");
}
});
// se le da accion al boton Limpiar OK!!!!!!!!!!!!!!!!!!!!!!!!!
btnlimpiar = new JButton("Limpiar");
btnlimpiar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
JOptionPane.showMessageDialog(null,"Datos Limpiados");
JText1.setText("");
JText2.setText("");
JText3.setText("");
JText4.setText("");
JText5.setText("");
combo.setSelectedIndex(0);
}
});
// aca se agregan los paneles y botones
panelBoton.add(btnregistrar);
panelBoton.add(btnborrar);
panelBoton.add(btnmodificar);
panelBoton.add(btnconsultar);
panelBoton.add(btnlimpiar);
}
public void construyeVentana() {
frame = new JFrame(" ");
frame.add(panelSuperior);
frame.add(panelInferior);
frame.add(panelBoton);
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setTitle("Ingreso de Datos Clientes Ver. 1.0"); // borde titulo pantalla
}
public static void main(String[] arg) {
new MenuPrincipal();
}
}
Edit: No había fijado que habías declarado los controles abajo del init()
Coloca las etiqueta de codigo Java en tu código para poder ver bien: [ code==java ] (sin espacios).
Saludos.
:huh:
ME pondré hacer otro codigo, muchas gracias de todos modo. :-(
NO SOLUCIONADO.
Coloca tu código dentro de las etiquetas Java para poder visualizar mejor.
Déjame probar tu código.
como hago eso amigo?
Tienes que colocar el code entre:
[ code==java]
[ / code]
Sin espacios.
te debo tener loco con tanta pregunta, discullpame
Te explico de forma forma, estoy intentando hacer un CRUD, para lo cual, estoy tratando de insertar un JTABLE, para que me muestre los datos ingresados, un boton ingresar, modificar, consultar, eliminar, y limpiar, cuando inserte JTABLE, se me borraron los campos de nombre, direccion, etc... grcias.
package menu;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JPanel;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.WindowConstants;
import javax.swing.JOptionPane; // de aca en adelante para asignar accion al boton
import javax.swing.JButton;
import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Scanner;
import java.util.Vector;
public class MenuPrincipal{
private JFrame frame;
private JPanel panelSuperior;
private JPanel panelInferior;
private JPanel panelBoton;
private JLabel titulo;
private JLabel JLabel1;
private JTextField JText1;
private JLabel JLabel2;
private JTextField JText2;
private JLabel JLabel3;
private JTextField JText3;
private JLabel JLabel4;
private JTextField JText4;
private JLabel JLabel5;
private JTextField JText5;
private JLabel JLabel6;
private JComboBox combo;
private JButton btnregistrar;
private JButton btnconsultar;
private JButton btnborrar;
private JButton btnmodificar;
private JButton btnlimpiar;
private JScrollPane jScrollPane;
private JTable tabla;
private void itializeComponent()
{
jsp1 = new JScrollPane();
int nombreColumnas;
modelo1 = new DefaultTableModel(null, nombreColumnas);
tabla1 = new JTable(modelo1);
jsp1.setViewportView(tabla1);
}
public MenuPrincipal() {
construyePanelSuperior();
construyePanelInferior();
construyePanelBoton();
construyeVentana();
}
private DefaultTableModel modelo1;
private JTable tabla1;
JScrollPane jsp1;
public void construyePanelSuperior(){
panelSuperior = new JPanel();
panelSuperior.setLayout(new FlowLayout());
panelSuperior.setBackground(Color.LIGHT_GRAY);
titulo = new JLabel("Ingreso de Datos");
panelSuperior.add(titulo);
}
public void construyePanelInferior() {
panelInferior = new JPanel();
panelInferior.setLayout(new GridLayout(3, 8, 12, 30)); // FILAS COLUMNAS
// LARGO ANCHO
JLabel1 = new JLabel(" Rut : ");
JText1 = new JTextField(10);
JLabel2 = new JLabel(" Nombre : ");
JText2 = new JTextField(10);
JLabel3 = new JLabel(" Apellido : ");
JText3 = new JTextField(10);
JLabel4 = new JLabel(" Dirección : ");
JText4 = new JTextField(10);
JLabel5 = new JLabel(" Teléfono : ");
JText5 = new JTextField(10);
JLabel6 = new JLabel(" Ciudad :");
combo = new JComboBox();
combo.addItem("Valparaiso");// AGREGAR OPCIONES COMBO
combo.addItem("Viña del Mar");
combo.addItem("Villa Alemana");
combo.addItem("Santiago");
combo.addItem("Pto. Montt");
panelInferior.add(JLabel1);
panelInferior.add(JText1);
panelInferior.add(JLabel2);
panelInferior.add(JText2);
panelInferior.add(JLabel3);
panelInferior.add(JText3);
panelInferior.add(JLabel4);
panelInferior.add(JText4);
panelInferior.add(JLabel5);
panelInferior.add(JText5);
panelInferior.add(JLabel6);
panelInferior.add(combo);
}
public void construyePanelBoton() {
// se da formato a panel
panelBoton = new JPanel();
panelBoton.setLayout(new FlowLayout(FlowLayout.CENTER));
// se le da accion al boton registrar
btnregistrar = new JButton("Registrar");
btnregistrar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
JOptionPane.showMessageDialog(null,"Usuario Registrado");
}
});
// se le da accion al boton borrar
btnborrar = new JButton("Borrar");
btnborrar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
JOptionPane.showMessageDialog(null,"Usuario Eliminado");
}
});
// se le da accion al boton modificar
btnmodificar = new JButton("Modificar");
btnmodificar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
JOptionPane.showMessageDialog(null,"Usuario Modificado");
}
});
// se le da accion al boton consultar
btnconsultar = new JButton("Consultar");
btnconsultar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
JOptionPane.showMessageDialog(null,"Consulta Exitosa");
}
});
// se le da accion al boton Limpiar OK!!!!!!!!!!!!!!!!!!!!!!!!!
btnlimpiar = new JButton("Limpiar");
btnlimpiar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
JOptionPane.showMessageDialog(null,"Datos Limpiados");
JText1.setText("");
JText2.setText("");
JText3.setText("");
JText4.setText("");
JText5.setText("");
combo.setSelectedIndex(0);
}
});
// aca se agregan los paneles y botones
panelBoton.add(btnregistrar);
panelBoton.add(btnborrar);
panelBoton.add(btnmodificar);
panelBoton.add(btnconsultar);
panelBoton.add(btnlimpiar);
}
public void construyeVentana() {
frame = new JFrame(" ");
frame.add(panelSuperior);
frame.add(panelInferior);
frame.add(panelBoton);
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setTitle("Ingreso de Datos Clientes Ver. 1.0"); // borde titulo pantalla
}
public static void main(String[] arg) {
new MenuPrincipal();
}
}[ / code]
Disuclpa, no estaba. Aquí te dejo un pequeño code, no lo he probado pero debería funcionar. Agrega y elimina filas:
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
public class Tabla extends JFrame implements ActionListener{
private JTextField txtNombre;
private JTextField txtApellidoP;
private JTextField txtApellidoM;
private JTextField txtDNI;
private JButton btnAdd;
private JButton btnRemove;
private JTable table;
private DefaultTableModel modelo;
String[] cabeceras =
{
"Nombre","Apellido P.","Apellido M.","DNI"
};
public static void main(String... args) {
new Tabla();
}
public Tabla() {
super("Ejemplo Tabla");
setLayout(null);
JLabel lblNombre = new JLabel("Nombre:");
JLabel lblApellidoP = new JLabel("Apellido P.:");
JLabel lblApellidoM = new JLabel("Apellido M.:");
JLabel lblDNI = new JLabel("DNI:");
txtNombre = new JTextField("",10);
txtApellidoP = new JTextField("",10);
txtApellidoM = new JTextField("",10);
txtDNI = new JTextField("",10);
btnAdd = new JButton("Agregar");
btnRemove = new JButton("Eliminar");
lblNombre.setBounds(20,20,80,20);
lblApellidoP.setBounds(250,20,80,20);
lblApellidoM.setBounds(20,70,80,20);
lblDNI.setBounds(250,70,80,20);
txtNombre.setBounds(130,22,100,25);
txtApellidoP.setBounds(330,22,100,25);
txtApellidoM.setBounds(130,72,100,25);
txtDNI.setBounds(330,72,100,25);
btnAdd.setBounds(30,102,90,35);
btnAdd.addActionListener(this);
btnRemove.setBounds(130,102,90,35);
btnRemove.addActionListener(this);
//Array bidimensional de objetos con los datos de la tabla
Object[][] data = {{null, null, null, null, null}
};
//Creacion de la tabla
modelo = new DefaultTableModel(data,cabeceras);
table = new JTable(modelo);
table.setPreferredScrollableViewportSize(new Dimension(500, 80));
//Creamos un scrollpanel y se lo agregamos a la tabla
JScrollPane scrollpane = new JScrollPane(table);
scrollpane.setBounds(20, 142, 400, 120);
this.add(lblNombre);
this.add(txtNombre);
this.add(lblApellidoP);
this.add(txtApellidoP);
this.add(lblApellidoM);
this.add(txtApellidoM);
this.add(lblDNI);
this.add(txtDNI);
this.add(btnAdd);
this.add(btnRemove);
this.add(scrollpane);
this.setSize(500,500);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
/* *********************************************************************************************************
EVENTOS DE LOS BOTONES
* *********************************************************************************************************/
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == btnAdd){
String nombre = txtNombre.getText();
String apellido = txtApellidoP.getText();
String apellidom = txtApellidoM.getText();
String dni = txtDNI.getText();
modelo.addRow(new Object[]{nombre,apellido,apellidom,dni});
}
else if(e.getSource() == btnRemove) {
try {
modelo=(DefaultTableModel) table.getModel();
modelo.removeRow(table.getSelectedRow());
} catch (Exception ex) {
}
}
}
}
Las celdas son editables por defecto en los JTable. Para el resto, te toca investigar ;)
Eres un genio, como hiciste eso, yo que estuve bastante tiempo trtando de hacerlo, mi codigo es gigante comparado al tuyo, mil gracias, investigare el resto, ;)
Me alegro que te haya servido. Sigue practicando!
Saludos.
AMIGO ME RECOMIENDA ALGUN LIBRO PARA PRINCIPIANTES C;
Como programar en Java - Deitel: http://depositfiles.org/files/rqppw0qp4
También, Pensar en Java de Bruce Eckel.
gracias amigo