Autor Tema: Java JFrame no se muestra el panel código con JTextArea JLabel JTextField JPanel  (Leído 2576 veces)

janegg

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 18
    • Ver Perfil
Este es mi código.  Estoy creando un jframe, pero no me muestra el panel, ayuda por favor!!

Código: [Seleccionar]
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;

public class Ventanas extends JFrame implements ActionListener
{
   //private AgenciaSG asg;
   private JFrame jf;
   private JTextArea area;
   private JLabel eticodagencia,etinomagencia;
   private JTextField txtcodagencia, txtnomagencia;
   private JPanel panel;
   private JButton boton;

   
   public Ventanas ()
   {
      eticodagencia = new JLabel("Codigo: ");
      etinomagencia = new JLabel("Nombre: ");
     
      txtcodagencia = new JTextField();
      txtnomagencia = new JTextField();
     
      boton = new JButton("Aceptar");
      area = new JTextArea ();
     
      panel = new JPanel();
      jf = new JFrame();
   }
   
   public void setCrear ()
   {
      jf.setSize( 500, 500 );
      jf.setVisible(true);
      jf.setDefaultCloseOperation( EXIT_ON_CLOSE );
      jf.setTitle("Crear");
      jf.setLocationRelativeTo(null);
      setPanelCrear();
     
      //getContentPane().setBackground(Color.blue);
   }
   /*
    //getContentPane().setBackground(Color.green);
      jp.setLayout(null);
      jf.getContentPane().add(jp);//agregar el panel a la ventana
      jl.setText("Hola Mundo");
      //jl.setText("que pepsi");
      jl.setBounds(50, 70, 100, 20);
      //jl.setOpaque(true); //permite cambiar el fondo de la etiqueta
      //jl.setBackground(Color.white); //cambia el color de la etiqueta
      jl.setForeground(Color.orange);//color a la letra
      jl.setFont(new Font("Arial", 0, 18));
      //jl.setText("Hola Mundo");
      jp.add(jl);
      */
   public void setPanelCrear()
   {   
      eticodagencia.setBounds(10, 20, 80, 20);
      eticodagencia.setBounds(10, 50, 80, 20);
     
      txtcodagencia.setBounds(100, 20, 80, 20);
      txtnomagencia.setBounds(100, 50, 80, 20);
     
      boton.setBounds(200, 20, 80, 20);
      boton.addActionListener(this);
      area.setBounds(10, 110, 300, 250);
     
      panel.setLayout(null);     
     
      panel.add(eticodagencia);
      panel.add(etinomagencia);
      panel.add(txtcodagencia);
      panel.add(txtnomagencia);
      panel.add(boton);
      panel.add(area);
     
     
      add(panel);
      jf.setSize( 500, 500 );
      jf.setVisible(true);


}

public void actionPerformed (ActionEvent e)
{
   if(e.getSource() == boton)
   {
      setCapturar();
   }
}

public void setCapturar ()
{
   area.setText("Los datos guardados son: \n Codigo de Agencia: "+txtcodagencia.getText()+"\nNombre de la Agencia: "+txtnomagencia.getText());
}
public static void main (String arg[])
   {
      Ventanas ve = new Ventanas ();
      ve.setCrear();
   }

}
« Última modificación: 06 de Junio 2020, 15:00 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Buenas janegg, para poner título a los temas mírate el hilo https://aprenderaprogramar.com/foros/index.php?topic=1460.0 e intenta poner los títulos como se indica ahí (evitar por ejemplo ayuda por favor porque eso no ayuda en nada a localizar o resolver el tema).

No estoy seguro de que el código esté bien diseñado. Por un lado añades elementos sobre un JFrame que es jf y por otro lado tienes una sentencia add(panel) que está añadiendo el panel sobre el objeto this que no es lo mismo que jf, con lo cual al mostrarse this se te muestra vacío ya que no has añadido los diferenes elementos a this, sino a jf

En lugar de add(panel) deberás indicar que el panel se añade al JFrame así:

 jf.add(panel);
 jf.setSize( 500, 500 );
 jf.setVisible(true);

A mí al menos con este cambio se me muestran los JLabel, JTextField, etc.

Salu2

janegg

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 18
    • Ver Perfil
Hola, acabo de ver las sugerencias del foro, una disculpa enorme. Gracias por su ayuda!

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".