Foros del Web » Programación para mayores de 30 ;) » Java »

swing eclipse java

Estas en el tema de swing eclipse java en el foro de Java en Foros del Web. buenas! estoy empezando a conocer lo que es swing para eclipse y ya tengo mi primer error a la hora de crear una ventana y ...
  #1 (permalink)  
Antiguo 07/06/2014, 20:31
 
Fecha de Ingreso: octubre-2012
Mensajes: 202
Antigüedad: 11 años, 6 meses
Puntos: 0
swing eclipse java

buenas!
estoy empezando a conocer lo que es swing para eclipse y ya tengo mi primer error a la hora de crear una ventana y llamarla desde la clase principal. me dice null pointer exeption. paso a mostrar mis dos clases

ventanaProducto:
Código Java:
Ver original
  1. package interfaces;
  2.  
  3. import javax.swing.BoxLayout;
  4. import javax.swing.JButton;
  5. import javax.swing.JComboBox;
  6. import javax.swing.JFrame;
  7. import javax.swing.JLabel;
  8. import javax.swing.JPanel;
  9. import javax.swing.JTextField;
  10.  
  11. public class ventanaProducto {
  12.  
  13.     //DECLARACION ITEMS DE LA VENTANA
  14.     private JFrame ventanaProducto;
  15.     private JPanel panelProducto;
  16.    
  17.     private JLabel idProducto, descripcion,marca, precio, medAncho, medLargo,
  18.            medProfundidad,peso, color, familia;
  19.    
  20.     private JTextField txtIdProducto, txtDescripcion, txtMarca, txtPrecio,
  21.                txtMedAncho, txtMedLargo, txtMedProfundidad,txtPeso,
  22.                txtColor;
  23.    
  24.     private JComboBox<String> boxFamilia;
  25.    
  26.     private JButton btnNuevo, btnEditar, btnEliminar;
  27.    
  28.     public void crearVentana(){
  29.         //Ventana
  30.         ventanaProducto= new JFrame();
  31.         ventanaProducto.add(panelProducto);
  32.         ventanaProducto.setBounds(0, 0, 800, 600);
  33.         ventanaProducto.setTitle("PRODUCTOS (Insertar, Editar, Eliminar)");
  34.         ventanaProducto.setVisible(true);
  35.         //ventanaProducto.setDefaultCloseOperation(ventanaProducto.EXIT_ON_CLOSE);
  36.                
  37.     }
  38.    
  39.     public void crearPanel(){
  40.         //PANEL:
  41.         panelProducto= new JPanel();
  42.         panelProducto.setLayout(new BoxLayout(panelProducto, BoxLayout.X_AXIS));
  43.         //ADD text field
  44.  
  45.         panelProducto.add(txtIdProducto);
  46.         panelProducto.add(txtDescripcion);
  47.         panelProducto.add(txtMarca);
  48.         panelProducto.add(txtPrecio);
  49.         panelProducto.add(txtMedAncho);
  50.         panelProducto.add(txtMedLargo);
  51.         panelProducto.add(txtMedProfundidad);
  52.         panelProducto.add(txtPeso);
  53.         panelProducto.add(txtColor);
  54.        
  55.         //PANEL ADD:
  56.         //etiquetas
  57.         panelProducto.add(idProducto);
  58.         panelProducto.add(descripcion);
  59.         panelProducto.add(marca);
  60.         panelProducto.add(precio);
  61.         panelProducto.add(medAncho);
  62.         panelProducto.add(medLargo);
  63.         panelProducto.add(medProfundidad);
  64.         panelProducto.add(peso);
  65.         panelProducto.add(color);
  66.        
  67.         //Etiquetas
  68.         idProducto.setText("ID");
  69.         descripcion=new JLabel();
  70.         descripcion.setText("Descripcion");
  71.         marca=new JLabel();
  72.         marca.setText("Marca");
  73.         precio=new JLabel();
  74.         precio.setText("Precio");
  75.         medAncho=new JLabel();
  76.         medAncho.setText("Ancho");
  77.         medLargo=new JLabel();
  78.         medLargo.setText("Largo");
  79.         medProfundidad=new JLabel();
  80.         medProfundidad.setText("Profundidad");
  81.         peso=new JLabel();
  82.         peso.setText("Peso");
  83.         color=new JLabel();
  84.         color.setText("Color");
  85.         familia=new JLabel();
  86.         familia.setText("Familia");
  87.        
  88.         //Text field
  89.         txtIdProducto=new JTextField();
  90.         txtDescripcion=new JTextField();
  91.         txtMarca=new JTextField();
  92.         txtPrecio=new JTextField();
  93.         txtMedAncho=new JTextField();
  94.         txtMedLargo=new JTextField();
  95.         txtMedProfundidad=new JTextField();
  96.         txtPeso=new JTextField();
  97.         txtColor=new JTextField();
  98.        
  99.         //Botones
  100.         btnNuevo=new JButton();
  101.         btnNuevo.setText("Nuevo");
  102.         btnEliminar=new JButton();
  103.         btnEliminar.setText("Eliminar");
  104.         btnEditar=new JButton();
  105.         btnEditar.setText("Editar");
  106.        
  107.         //Box
  108.         boxFamilia= new JComboBox<String>();
  109.         boxFamilia.addItem("Ejemplo 1");
  110.         boxFamilia.addItem("Ejemplo 2");
  111.         boxFamilia.addItem("Ejemplo 3");
  112.     }
  113.    
  114.     //CONSTRUCTOR
  115.     public ventanaProducto() {
  116.     }
  117. }

principal:
Código Java:
Ver original
  1. package principal;
  2.  
  3. import interfaces.ventanaProducto;
  4.  
  5.  
  6. public class principal {
  7.  
  8.     public static void main(String[] args) {
  9.        
  10.         ventanaProducto ventana = new ventanaProducto();
  11.         ventana.crearVentana();
  12.         ventana.crearPanel();
  13.  
  14.     }
  15.    
  16.  
  17. }

si alguien me puede ayudar estaria muy agradecido
  #2 (permalink)  
Antiguo 08/06/2014, 04:03
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: swing eclipse java

Ayudaría saber la línea exacta que da NullPointerException.

De todas formas, crearVentana() llama a ventanaProducto.add(panelProducto); y panelProducto se crea en el método crearPanel() al que llamas después, por lo que en el método crearVentana() todavía no está creado y no puedes usarolo

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 08/06/2014, 09:52
 
Fecha de Ingreso: octubre-2012
Mensajes: 202
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: swing eclipse java

muchisimas gracias! era ese el inconveniente.. movi esa linea de codigo al metodo crear panel y todo funciono :)
  #4 (permalink)  
Antiguo 08/06/2014, 09:56
 
Fecha de Ingreso: octubre-2012
Mensajes: 202
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: swing eclipse java

perdon.. no solucione todo.. ahora abre la ventana pero el error persiste:


Exception in thread "main" java.lang.NullPointerException
at java.awt.Container.addImpl(Unknown Source)
at java.awt.Container.add(Unknown Source)
at vista.ventanaProducto.crearPanel(ventanaProducto.j ava:44)
at principal.principal.main(principal.java:12)

Última edición por jmm87; 08/06/2014 a las 10:03
  #5 (permalink)  
Antiguo 08/06/2014, 10:16
 
Fecha de Ingreso: octubre-2012
Mensajes: 202
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: swing eclipse java

Cita:
Iniciado por jmm87 Ver Mensaje
perdon.. no solucione todo.. ahora abre la ventana pero el error persiste:


Exception in thread "main" java.lang.NullPointerException
at java.awt.Container.addImpl(Unknown Source)
at java.awt.Container.add(Unknown Source)
at vista.ventanaProducto.crearPanel(ventanaProducto.j ava:44)
at principal.principal.main(principal.java:12)
ya esta solucionado me faltaba declarar el textField de IDPRODUCTO y le estaba seteando algo.Gracias por la ayuda!!

Etiquetas: clase, eclipse, swing
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:22.