Foro de elhacker.net

Programación => Java => Mensaje iniciado por: SebastianJava en 26 Octubre 2013, 22:27 pm



Título: Consulta sobre código
Publicado por: SebastianJava en 26 Octubre 2013, 22:27 pm
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.  :-[

Código:
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();
}
 


}






Título: Re: Consulta sobre código
Publicado por: Mitsu en 27 Octubre 2013, 16:21 pm
Disculpa, pero no entiendo muy bien lo que deseas. ¿Lo que quieres es agregar los datos de los JTextField's a tu Tabla?


Código
  1.  
  2. String ruc = JText1.getText();
  3. String nombre = JText2.getText();
  4. String apellido = JText3.getText();
  5. String direccion= JText4.getText()
  6. String telefono = JText5.getText();
  7. String ciudad = combo.getSelectedItem().toString();
  8.  
  9. // agregamos los datos a la fila Object
  10.  
  11. Object[] datos = {ruc,nombre,apellido,direccion,telefono,ciudad};
  12.  
  13. modelo.addRow(datos);
  14.  
  15.  


Título: Re: Consulta sobre código
Publicado por: SebastianJava en 28 Octubre 2013, 01:56 am
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)


Código:
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();
}
}


Título: Re: Consulta sobre código
Publicado por: Mitsu en 28 Octubre 2013, 04:01 am
He probado tu codigo y solo se ve visible un panel de botones...


Crear e inicializar la tabla:
Código
  1. String nombreColumnas[] = {"Ruc","Nombre","Apellido","Direccion","Ciudad"};
  2.  
  3. private void itializeComponent()
  4. {
  5.                jsp1 = new JScrollPane();
  6.  
  7.                modelo1 = new DefaultTableModel(null,nombreColumnas);
  8.  
  9.                tabla1 = new JTable(modelo1);
  10.  
  11.                jsp1.setViewportView(tabla1);
  12.  
  13. }
  14.  

Insertar datos en la tabla:
Código
  1. private voidd insertarData() {
  2.  
  3.  
  4. // recuperamos los valores
  5.  
  6. String ruc = JText1.getText();
  7. String nombre = JText2.getText();
  8. String apellido = JText3.getText();
  9. String direccion= JText4.getText()
  10. String telefono = JText5.getText();
  11. String ciudad = combo.getSelectedItem().toString();
  12.  
  13. // los agregamos a la tabla
  14.  
  15. modelo1.insertRow(modelo1.getRowCount(),new Object[]{ruc, nombre, apellido, direccion, telefono, ciudad});
  16.  
  17. }
  18.  

Recuperar datos de la tabla:
Código
  1. private void getDatosDeTabla() {
  2.  
  3. int nrow = tabla.getRowCount(); // numero de filas
  4. int col=tabla.getColumnCount(); // numero de columnas
  5. String[][] sArray=new String[nrow][col]; //por si quieres almacenar los datos de tu columna en una matriz del tipo String
  6. for(int i=0;i<nrow;i++){
  7.                                for (int j=0;j<col;j++){
  8.  
  9.                                        sArray[i][j]=tabla.getModel().getValueAt(i,j).toString();
  10.                                }
  11.                  }
  12.  
  13. }
  14.  


Título: Re: Consulta sobre código
Publicado por: SebastianJava en 28 Octubre 2013, 17:11 pm
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  :-\

Código:
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();
}
}



Título: Re: Consulta sobre código
Publicado por: Mitsu en 28 Octubre 2013, 17:24 pm
Primero, no crees e instancies tus controles en el constructor. Porque luego de salir del constructor desaparecerán. Primero declara los contorles.

Código
  1. private DefaultTableModel modelo1;
  2. private JTable tabla1;
  3.  
  4. private void itializeComponent()
  5. {
  6.               jsp1 = new JScrollPane();
  7.  
  8.               modelo1 = new DefaultTableModel(null,nombreColumnas);
  9.  
  10.               tabla1 = new JTable(modelo1);
  11.  
  12.               jsp1.setViewportView(tabla1);
  13. }

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.


Título: Re: Consulta sobre código
Publicado por: SebastianJava en 28 Octubre 2013, 22:46 pm
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

Código:
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();
}
}


Título: Re: Consulta sobre código
Publicado por: Mitsu en 28 Octubre 2013, 22:59 pm
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.


Título: Re: Consulta sobre código
Publicado por: SebastianJava en 28 Octubre 2013, 23:19 pm
 :huh:

ME pondré hacer otro codigo, muchas gracias de todos modo. :-(

NO SOLUCIONADO.


Título: Re: Consulta sobre código
Publicado por: Mitsu en 28 Octubre 2013, 23:35 pm
Coloca tu código dentro de las etiquetas Java para poder visualizar mejor.

Déjame probar tu código.


Título: Re: Consulta sobre código
Publicado por: SebastianJava en 28 Octubre 2013, 23:49 pm
como hago eso amigo?


Título: Re: Consulta sobre código
Publicado por: Mitsu en 28 Octubre 2013, 23:58 pm
Tienes que colocar el code entre:

[ code==java]

[ / code]

Sin espacios.


Título: Re: Consulta sobre código
Publicado por: SebastianJava en 29 Octubre 2013, 00:15 am
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.

Código
  1. package menu;
  2.  
  3. import javax.swing.JTextField;
  4. import javax.swing.JButton;
  5. import javax.swing.JPanel;
  6.  
  7. import java.awt.Color;
  8. import java.awt.FlowLayout;
  9. import java.awt.GridLayout;
  10.  
  11. import javax.swing.JComboBox;
  12. import javax.swing.JFrame;
  13. import javax.swing.JLabel;
  14.  
  15. import javax.swing.JScrollPane;
  16. import javax.swing.JTable;
  17. import javax.swing.WindowConstants;
  18. import javax.swing.JOptionPane; // de aca en adelante para asignar accion al boton
  19. import javax.swing.JButton;
  20.  
  21.  
  22. import javax.swing.event.TableModelListener;
  23. import javax.swing.table.DefaultTableModel;
  24. import javax.swing.table.TableModel;
  25.  
  26. import java.awt.event.ActionEvent;
  27. import java.awt.event.ActionListener;
  28. import java.util.Scanner;
  29. import java.util.Vector;
  30.  
  31.  
  32.  
  33. public class MenuPrincipal{
  34.  
  35. private JFrame frame;
  36. private JPanel panelSuperior;
  37. private JPanel panelInferior;
  38. private JPanel panelBoton;
  39.  
  40. private JLabel titulo;
  41.  
  42. private JLabel JLabel1;
  43. private JTextField JText1;
  44. private JLabel JLabel2;
  45. private JTextField JText2;
  46. private JLabel JLabel3;
  47. private JTextField JText3;
  48. private JLabel JLabel4;
  49. private JTextField JText4;
  50. private JLabel JLabel5;
  51. private JTextField JText5;
  52. private JLabel JLabel6;
  53. private JComboBox combo;
  54.  
  55. private JButton btnregistrar;
  56. private JButton btnconsultar;
  57. private JButton btnborrar;
  58. private JButton btnmodificar;
  59.  
  60. private JButton btnlimpiar;
  61. private JScrollPane jScrollPane;
  62. private JTable tabla;
  63.  
  64. private void itializeComponent()
  65.    {
  66.                  jsp1 = new JScrollPane();
  67.                  int nombreColumnas;
  68.  
  69.  
  70. modelo1 = new DefaultTableModel(null, nombreColumnas);
  71.  
  72.                  tabla1 = new JTable(modelo1);
  73.  
  74.                  jsp1.setViewportView(tabla1);
  75.    }
  76.  
  77. public MenuPrincipal() {
  78. construyePanelSuperior();
  79. construyePanelInferior();
  80. construyePanelBoton();
  81. construyeVentana();
  82.  
  83.  
  84.  
  85.  
  86. }
  87.  
  88.    private DefaultTableModel modelo1;
  89.    private JTable tabla1;
  90.    JScrollPane jsp1;
  91.  
  92.  
  93. public void construyePanelSuperior(){
  94.  
  95. panelSuperior = new JPanel();
  96. panelSuperior.setLayout(new FlowLayout());
  97. panelSuperior.setBackground(Color.LIGHT_GRAY);
  98.  
  99. titulo = new JLabel("Ingreso de Datos");
  100. panelSuperior.add(titulo);
  101.  
  102. }
  103.  
  104. public void construyePanelInferior() {
  105. panelInferior = new JPanel();
  106. panelInferior.setLayout(new GridLayout(3, 8, 12, 30)); // FILAS COLUMNAS
  107. // LARGO ANCHO
  108. JLabel1 = new JLabel("      Rut : ");
  109. JText1 = new JTextField(10);
  110.  
  111. JLabel2 = new JLabel("      Nombre : ");
  112. JText2 = new JTextField(10);
  113.  
  114. JLabel3 = new JLabel("      Apellido : ");
  115. JText3 = new JTextField(10);
  116.  
  117. JLabel4 = new JLabel("      Dirección : ");
  118. JText4 = new JTextField(10);
  119.  
  120. JLabel5 = new JLabel("      Teléfono : ");
  121. JText5 = new JTextField(10);
  122.  
  123. JLabel6 = new JLabel("      Ciudad  :");
  124. combo = new JComboBox();
  125.  
  126. combo.addItem("Valparaiso");// AGREGAR OPCIONES COMBO
  127. combo.addItem("Viña del Mar");
  128. combo.addItem("Villa Alemana");
  129. combo.addItem("Santiago");
  130. combo.addItem("Pto. Montt");
  131.  
  132. panelInferior.add(JLabel1);
  133. panelInferior.add(JText1);
  134.  
  135. panelInferior.add(JLabel2);
  136. panelInferior.add(JText2);
  137.  
  138. panelInferior.add(JLabel3);
  139. panelInferior.add(JText3);
  140.  
  141. panelInferior.add(JLabel4);
  142. panelInferior.add(JText4);
  143.  
  144. panelInferior.add(JLabel5);
  145. panelInferior.add(JText5);
  146.  
  147. panelInferior.add(JLabel6);
  148. panelInferior.add(combo);
  149. }
  150.  
  151. public void construyePanelBoton() {
  152. // se da formato a panel
  153. panelBoton = new JPanel();
  154. panelBoton.setLayout(new FlowLayout(FlowLayout.CENTER));
  155.  
  156. // se le da accion al boton registrar
  157. btnregistrar = new JButton("Registrar");
  158. btnregistrar.addActionListener(new ActionListener(){
  159.  
  160. public void actionPerformed(ActionEvent ae){
  161. JOptionPane.showMessageDialog(null,"Usuario Registrado");
  162.  
  163. }
  164. });
  165.  
  166. // se le da accion al boton borrar
  167. btnborrar = new JButton("Borrar");
  168. btnborrar.addActionListener(new ActionListener(){
  169. public void actionPerformed(ActionEvent ae){
  170. JOptionPane.showMessageDialog(null,"Usuario Eliminado");
  171. }
  172. });
  173.  
  174.  
  175. // se le da accion al boton modificar
  176. btnmodificar = new JButton("Modificar");
  177. btnmodificar.addActionListener(new ActionListener(){
  178. public void actionPerformed(ActionEvent ae){
  179. JOptionPane.showMessageDialog(null,"Usuario Modificado");
  180. }
  181. });
  182.  
  183.  
  184. // se le da accion al boton consultar
  185. btnconsultar = new JButton("Consultar");
  186. btnconsultar.addActionListener(new ActionListener(){
  187. public void actionPerformed(ActionEvent ae){
  188. JOptionPane.showMessageDialog(null,"Consulta Exitosa");
  189. }
  190. });
  191.  
  192.  
  193. // se le da accion al boton Limpiar OK!!!!!!!!!!!!!!!!!!!!!!!!!
  194. btnlimpiar = new JButton("Limpiar");
  195. btnlimpiar.addActionListener(new ActionListener(){
  196. public void actionPerformed(ActionEvent ae){
  197. JOptionPane.showMessageDialog(null,"Datos Limpiados");
  198. JText1.setText("");
  199. JText2.setText("");
  200. JText3.setText("");
  201. JText4.setText("");
  202. JText5.setText("");
  203. combo.setSelectedIndex(0);
  204. }
  205. });
  206.  
  207. // aca se agregan los paneles y botones
  208.  
  209. panelBoton.add(btnregistrar);
  210. panelBoton.add(btnborrar);
  211. panelBoton.add(btnmodificar);
  212. panelBoton.add(btnconsultar);
  213. panelBoton.add(btnlimpiar);
  214.  
  215. }
  216.  
  217.  
  218. public void construyeVentana() {
  219. frame = new JFrame(" ");
  220. frame.add(panelSuperior);
  221. frame.add(panelInferior);
  222. frame.add(panelBoton);
  223. frame.pack();
  224. frame.setVisible(true);
  225. frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  226. frame.setTitle("Ingreso de Datos Clientes Ver. 1.0"); // borde titulo pantalla
  227.  
  228. }
  229.  
  230. public static void main(String[] arg) {
  231. new MenuPrincipal();
  232. }
  233. }[ / code]


Título: Re: Consulta sobre código
Publicado por: Mitsu en 29 Octubre 2013, 01:37 am
Disuclpa, no estaba. Aquí te dejo un pequeño code, no lo he probado pero debería funcionar. Agrega y elimina filas:

Código
  1. import java.awt.Dimension;
  2. import java.awt.event.ActionEvent;
  3. import java.awt.event.ActionListener;
  4. import javax.swing.JButton;
  5. import javax.swing.JFrame;
  6. import javax.swing.JLabel;
  7. import javax.swing.JScrollPane;
  8. import javax.swing.JTable;
  9. import javax.swing.JTextField;
  10. import javax.swing.table.DefaultTableModel;
  11.  
  12. public class Tabla extends JFrame implements ActionListener{
  13.  
  14.    private JTextField txtNombre;
  15.    private JTextField txtApellidoP;
  16.    private JTextField txtApellidoM;
  17.    private JTextField txtDNI;
  18.    private JButton btnAdd;
  19.    private JButton btnRemove;
  20.    private JTable table;
  21.    private DefaultTableModel modelo;
  22.  
  23.    String[] cabeceras =
  24.        {
  25.            "Nombre","Apellido P.","Apellido M.","DNI"
  26.        };
  27.  
  28.    public static void main(String... args) {
  29.        new Tabla();
  30.    }
  31.  
  32.    public Tabla() {
  33.        super("Ejemplo Tabla");
  34.        setLayout(null);
  35.        JLabel lblNombre = new JLabel("Nombre:");
  36.        JLabel lblApellidoP = new JLabel("Apellido P.:");
  37.        JLabel lblApellidoM = new JLabel("Apellido M.:");
  38.        JLabel lblDNI = new JLabel("DNI:");
  39.  
  40.        txtNombre = new JTextField("",10);
  41.        txtApellidoP = new JTextField("",10);
  42.        txtApellidoM = new JTextField("",10);
  43.        txtDNI = new JTextField("",10);
  44.  
  45.        btnAdd = new JButton("Agregar");
  46.        btnRemove = new JButton("Eliminar");
  47.  
  48.        lblNombre.setBounds(20,20,80,20);
  49.        lblApellidoP.setBounds(250,20,80,20);
  50.        lblApellidoM.setBounds(20,70,80,20);
  51.        lblDNI.setBounds(250,70,80,20);
  52.        txtNombre.setBounds(130,22,100,25);
  53.        txtApellidoP.setBounds(330,22,100,25);
  54.        txtApellidoM.setBounds(130,72,100,25);
  55.        txtDNI.setBounds(330,72,100,25);
  56.        btnAdd.setBounds(30,102,90,35);
  57.        btnAdd.addActionListener(this);
  58.        btnRemove.setBounds(130,102,90,35);
  59.        btnRemove.addActionListener(this);
  60.  
  61.  
  62.        //Array bidimensional de objetos con los datos de la tabla
  63.        Object[][] data = {{null, null, null, null, null}
  64.        };
  65.  
  66.        //Creacion de la tabla
  67.        modelo = new DefaultTableModel(data,cabeceras);
  68.        table = new JTable(modelo);
  69.        table.setPreferredScrollableViewportSize(new Dimension(500, 80));
  70.  
  71.        //Creamos un scrollpanel y se lo agregamos a la tabla
  72.        JScrollPane scrollpane = new JScrollPane(table);
  73.        scrollpane.setBounds(20, 142, 400, 120);
  74.  
  75.  
  76.        this.add(lblNombre);
  77.        this.add(txtNombre);
  78.        this.add(lblApellidoP);
  79.        this.add(txtApellidoP);
  80.        this.add(lblApellidoM);
  81.        this.add(txtApellidoM);
  82.        this.add(lblDNI);
  83.        this.add(txtDNI);
  84.        this.add(btnAdd);
  85.        this.add(btnRemove);
  86.        this.add(scrollpane);
  87.  
  88.        this.setSize(500,500);
  89.        this.setVisible(true);
  90.        this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
  91.    }
  92.  
  93.    /* *********************************************************************************************************
  94.       EVENTOS DE LOS BOTONES
  95.     * *********************************************************************************************************/
  96.    @Override
  97.    public void actionPerformed(ActionEvent e) {
  98.        if(e.getSource() == btnAdd){
  99.            String nombre = txtNombre.getText();
  100.                String apellido = txtApellidoP.getText();
  101.                String apellidom = txtApellidoM.getText();
  102.                String dni = txtDNI.getText();
  103.  
  104.                modelo.addRow(new Object[]{nombre,apellido,apellidom,dni});
  105.        }
  106.        else if(e.getSource() == btnRemove) {
  107.            try {
  108.            modelo=(DefaultTableModel) table.getModel();
  109.            modelo.removeRow(table.getSelectedRow());
  110.  
  111.        } catch (Exception ex) {
  112.            }
  113.        }
  114.    }
  115.  
  116.  
  117.  
  118.  
  119. }
  120.  


Las celdas son editables por defecto en los JTable. Para el resto, te toca investigar ;)


Título: Re: Consulta sobre código
Publicado por: SebastianJava en 29 Octubre 2013, 02:23 am
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,  ;)


Título: Re: Consulta sobre código
Publicado por: Mitsu en 29 Octubre 2013, 02:40 am
Me alegro que te haya servido. Sigue practicando!


Saludos.


Título: Re: Consulta sobre código
Publicado por: SebastianJava en 29 Octubre 2013, 02:44 am
AMIGO ME RECOMIENDA ALGUN LIBRO PARA PRINCIPIANTES C;


Título: Re: Consulta sobre código
Publicado por: Mitsu en 29 Octubre 2013, 02:56 am
Como programar en Java - Deitel: http://depositfiles.org/files/rqppw0qp4

También, Pensar en Java de Bruce Eckel.


Título: Re: Consulta sobre código
Publicado por: SebastianJava en 29 Octubre 2013, 03:02 am
gracias amigo