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

problema con JFrame

Estas en el tema de problema con JFrame en el foro de Java en Foros del Web. compañeros tengo un problema con el JFrame, resulta que siempre que lo implemento no me coje el ultimo elemento (llamese boton, label, etc) para que ...
  #1 (permalink)  
Antiguo 18/09/2009, 08:26
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
problema con JFrame

compañeros tengo un problema con el JFrame, resulta que siempre que lo implemento no me coje el ultimo elemento (llamese boton, label, etc) para que me muestre todos los objetos que necesito debo crear un boton o algo, que no tenga nada de informacion, ponerlo como "no visible" y añadirlo al frame, ahi si me muestra todo. Por que ocurre esto? que debo cambiar? que estoy haciendo mal?

este es el codigo
Código java:
Ver original
  1. public class tesoreria extends JFrame{
  2.     //variables
  3.     String ruta,archivo;
  4.     //objetos
  5.     //label de informacion
  6.     JLabel jl_escoja = new JLabel("Escoja la ruta de descarga del archivo.");
  7.     //boton para descarga
  8.     JButton jb_descargar = new JButton("Descargar");
  9.     //boton examinar
  10.     JButton jb_examinar = new JButton("Examinar");
  11.     //ruta de descarga
  12.     JTextField jt_ruta = new JTextField(30);
  13.     //consola/informacion
  14.     private static JTextArea ta_consola = new JTextArea();
  15.     JScrollPane scroll_consola = new JScrollPane(ta_consola);
  16.     //frame
  17.     private static JFrame miframe = new JFrame();
  18.     //constructor
  19.     public tesoreria(){
  20.         //varibles
  21.         ruta = "";
  22.         archivo = "CHEQUESF";
  23.         //objetos
  24.         //adjuntar label
  25.         jl_escoja.setBounds(300, 30, 300, 20);
  26.         miframe.add(jl_escoja);
  27.         //adjuntar el campo de la ruta
  28.         jt_ruta.setBounds(150, 70, 450, 20);
  29.         jt_ruta.setFocusable(false);
  30.         miframe.add(jt_ruta);
  31.         //adjuntar boton examinar
  32.         jb_examinar.setBounds(610, 70, 100, 20);
  33.         miframe.add(jb_examinar);
  34.         //adjuntar boton de descargar
  35.         jb_descargar.setBounds(350, 120, 130, 40);
  36.         miframe.add(jb_descargar);
  37.         //adjuntar la consola
  38.         scroll_consola.setBounds(10, 200, 770, 100);
  39.         ta_consola.setFocusable(false);
  40.         miframe.add(scroll_consola);
  41.  
  42.         ////boton extraño:
  43.         JButton botonmal = new JButton();
  44.         miframe.add(botonmal);
  45.         botonmal.setVisible(false);
  46.  
  47.         //ventana
  48.         miframe.show();
  49.         miframe.setBounds(300, 100, 800, 350);
  50.         miframe.setTitle("");
  51.  
  52.  
  53.         //para cerrar:
  54.         miframe.addWindowListener ( new WindowAdapter ( ) {@Override
  55. public void windowClosing (WindowEvent e) {System.exit (0);}} );
  56.     }
  57. ...

si ven? debo poner un "botonmal" para que me pueda mostrar el scroll de la consola :D (algo improvisado para mostrar todo lo que sucede :D)


por otro lado, a un compañero le pasa algo similar, como si no fuera suficiente el tener que añadir el "botonmal", debe maximiar la ventana para poder ver los elementos en el frame. luego si lo cambia de tamaño lo sigue mostrando. por que ocurre esto?

saludos PD: el codigo que usa mi compañero es similar al mio (yo le estoy donando codigo :D (copyleft :D))
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
  #2 (permalink)  
Antiguo 18/09/2009, 09:44
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: problema con JFrame

Hola:

Tu caso no lo entiendo bien. Debería mostrar los elementos en cualquier caso (supongo que has puesto layout null ¿no?). ¿Sólo no muestra el último que añades, pero sí muestra los demás o directamente no muestra nada?

El de tu amigo puede ser debido a añadir los componentes después de que el frame sea visible. Si se hace así, el frame no muestra los elementos. Hay que añadirlos antes de hacerlo visible.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 18/09/2009, 10:03
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
Respuesta: problema con JFrame

ummm pues que raro. primero, no uso layout, solo un JFrame, y no me muestra el ultimo, los anteriores al ultimo si me lo muestra.

el de mi amigo esta similar al mio, de la misma forma, los esta añadiendo antes de que el frame sea visible pero, asi lo tengo yo y el mio si lo muestra. lo unico diferente es que el usa JCreator en windos y yo Netbeans en Linux.
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
  #4 (permalink)  
Antiguo 18/09/2009, 10:46
Avatar de javico40  
Fecha de Ingreso: agosto-2008
Ubicación: Evergreen Terrace 123
Mensajes: 288
Antigüedad: 15 años, 8 meses
Puntos: 9
Respuesta: problema con JFrame

Te recomiendo hacer varias cosas, primero revisa que nada se superponga a lo que tienes, es decir, revisa no tener un jpanel o algun otro componente renderizandose sobre tus otros componentes, segundo revisa tener suficiente tamaño en tu jframe para todos tus componentes, ya que no usas manejador de diseño deberias detectar la resolucion del equipo y ajustar tu visual dependiendo de esto:

Cita:
Double myScreenWidth = Toolkit.getDefaultToolkit().getScreenSize().getWid th();
Double myscreenHeight = Toolkit.getDefaultToolkit().getScreenSize().getHei ght();
int width = myScreenWidth.intValue();
int height = myscreenHeight.intValue();
Con eos ya tienes el width y el high de la pantalla, y redimensiona tus componentes.
__________________
.: Ludusoft Consultores :. Consultoria IT, Desarrollo Web, Virtualizacion, Programacion, Venta de Equipos, Hosting, Centro de Contacto. http://www.ludusoft.com
  #5 (permalink)  
Antiguo 18/09/2009, 10:47
Avatar de javico40  
Fecha de Ingreso: agosto-2008
Ubicación: Evergreen Terrace 123
Mensajes: 288
Antigüedad: 15 años, 8 meses
Puntos: 9
Respuesta: problema con JFrame

tambien recuerda que cada componente trae el metodo getpreferedsize() para saber que tamaño es el adecuado, mete todo en un jpanel para que sea mejor y le das getpreferedsize.
__________________
.: Ludusoft Consultores :. Consultoria IT, Desarrollo Web, Virtualizacion, Programacion, Venta de Equipos, Hosting, Centro de Contacto. http://www.ludusoft.com
  #6 (permalink)  
Antiguo 18/09/2009, 12:09
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
Respuesta: problema con JFrame

no men, lo necesito con esos tamaños que tienen, ademas, puse mi codigo, puedes ver que no tengo nada mas que eso, lo unico que omiti son los otros metodos que nada tienen que ver con la interfaz.
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
  #7 (permalink)  
Antiguo 18/09/2009, 15:09
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: problema con JFrame

Hola:

Si no pones layout, el frame por defecto tiene un BorderLayout. En el BorderLayout, tal cual estás añadiendo los componentes, los pone uno encima de otros y además les cambia los setBounds() que estás haciendo, por eso sólo ves el último (todos los demás están debajo).

Si haces

frame.setLayout(null)

entonces ya sí se respetan las posiciones que des a los componentes. De todas formas, layout null es la solución fácil, pero no la elegante. Java tiene muchos tipos de layout para colocar los componentes sin necesidad de andar dándoles las coordenadas y tamaños. En el enlace tienes un pequeño tutorial.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #8 (permalink)  
Antiguo 18/09/2009, 15:38
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
Respuesta: problema con JFrame

no compa. no se ve el ultimo, al contrario, el ultimo es el que no se ve. por eso es que pongo de ultimo a un boton que obviamente no necesito ni importa, para que no se vea.
pero me gusta mas trabajar con coordenadas.
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
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 00:30.