elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  El orden de los factores, en efecto, altera el producto
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: El orden de los factores, en efecto, altera el producto  (Leído 2,483 veces)
NekroByte


Desconectado Desconectado

Mensajes: 639


Ver Perfil WWW
El orden de los factores, en efecto, altera el producto
« en: 29 Julio 2007, 06:37 am »

El asunto es así: una clase extends Frame:

Si pongo esto:

Código
  1. public Prueva(String title){
  2.  
  3. super(title);
  4.  
  5. wndListener Eventos = new wndListener();
  6. addWindowListener(Eventos);
  7.  
  8. button = new Button("Heisann!");
  9. button.setBackground(Color.MAGENTA);
  10.  add(button);
  11. button.setLocation(64, 64);
  12. button.setSize(64, 64);
  13.  
  14. setBackground(Color.CYAN);
  15. setSize(256, 256);
  16. setVisible(true);
  17.  
  18. }

Me aparece una ventana de 256 * 256 con un botón de comando de 256 * 256 (cubriendo toda el área), pero si pongo esto que es el mismo código pero con los dos últimos párrafos permutados:

Código
  1. public Prueva(String title){
  2.  
  3. super(title);
  4.  
  5. wndListener Eventos = new wndListener();
  6. addWindowListener(Eventos);
  7.  
  8. setBackground(Color.CYAN);
  9. setSize(256, 256);
  10. setVisible(true);
  11.  
  12. button = new Button("Heisann!");
  13. button.setBackground(Color.MAGENTA);
  14.  add(button);
  15. button.setLocation(64, 64);
  16. button.setSize(64, 64);
  17.  
  18. }

Me aparece una ventana de 256 * 256 con un botón de 64 * 64 en su respectivo lugar.

Me he dado cuenta que es el método setVisible(boolean) que mi clase ha heredado de Frame, si llamo a ese método como lo hago en los dos casos para hacer visible mi ventana, se me redimensiona el botón dependiendo de dónde esté el código, si no lo llamo simplemente no aparece nada.

Mi pregunta, ¿por qué ese setVisible(boolean) redimensiona el componente de mi Frame? Se supone que eso es trabajo mío y no debe ser la máquina quien decide que se hace.

De ser así imaginen si tengo que crear un Frame con muchos objetos dentro: tendría que hacer visible la ventana y luego ir creando los objetos y acomodándolos y Java no es muy rápido que digamos.


« Última modificación: 29 Julio 2007, 07:36 am por NekroByte » En línea

Yshua

Desconectado Desconectado

Mensajes: 51


Yeshúa Ha Mashiaj... Mikamoha belim Adonai


Ver Perfil WWW
Re: El orden de los factores, en efecto, altera el producto
« Respuesta #1 en: 29 Julio 2007, 06:45 am »

lo más seguro es q el frame esté usando un layout, el BorderLayout es el defecto. los Layouts, generalmente redimensionan los componentes para mantener el orden. todo depende. y el setVisible, en varias ocasiones cambian los resultados segun la posicion, cuestion de paint y repaint.

Pd:Prueba es con B no con V, se ve feo  ;D

Pd2: en la programacion el orden de los factores si altera el producto es parte de ella


En línea


Baruj aba beshem Adonai.
<a href="http://www.cp666group.com">visita mi sitio CP666GROUP</a>
NekroByte


Desconectado Desconectado

Mensajes: 639


Ver Perfil WWW
Re: El orden de los factores, en efecto, altera el producto
« Respuesta #2 en: 29 Julio 2007, 07:36 am »

Citar
Pd:Prueba es con B no con V, se ve feo
No, desde la última asamblea del 2006 en Madrid se escribe con "V".

Citar
Pd2: en la programacion el orden de los factores si altera el producto es parte de ella
Sí, se me pasó que aquí así eran las cosas.

Voy a ver eso de los layouts porque algo leí sobre ellos pero es casi nulo, y lo de la RAE era una broma.

Gracias por tu respuesta.
En línea

NekroByte


Desconectado Desconectado

Mensajes: 639


Ver Perfil WWW
Re: El orden de los factores, en efecto, altera el producto
« Respuesta #3 en: 29 Julio 2007, 08:44 am »

Gracias, Yshua, ya le agarré la onda a esto de los Layouts y pude solucionar mi problema, aunque tú dices que BorderLayout es por defecto resulta que yo lo he compuesto asignándole un BorderLayout. He aquí la sustitución (no lo pongo en [ code] por las negritas):

Citar
      setBackground(Color.CYAN);
      setSize(256, 256);
      setVisible(true);

Citar
      setBackground(Color.CYAN);
      setSize(256, 256);
      setLayout(new BorderLayout());
      setVisible(true);

Estuve probando con otras clases que implementaron la interfase LayoutManager que encontré en la documentación de Sun y mientras algunos me lo dejaban igual y otros diferente, este fue el único que se apegó a lo que especifiqué en el código; es por ello que me extraña si dices que BorderLayout es el organizador por defecto.

Aclaro que probé también asignando el layout después de setVisible() seguido de un repaint() pero me lo dejó igual del tamaño de la ventana, osea mal (bueno, mal para mí, porque para el compilador pues no).

Saludos.
En línea

Yshua

Desconectado Desconectado

Mensajes: 51


Yeshúa Ha Mashiaj... Mikamoha belim Adonai


Ver Perfil WWW
Re: El orden de los factores, en efecto, altera el producto
« Respuesta #4 en: 29 Julio 2007, 22:04 pm »

si hay errores de compilacion de ejecucion o simplemente errores de programacion q nos dan resultados indeseados sin lanzar excepcion alguna. lo de los layouts bueno si estaba mal en cual es el defecto de realmente es el flowlayout el defecto. y en este el tamaño depende del tamaño del frame y del prefered size del elemento basicamente, ademas de algunas propiedades q se le pueden dar como center o algo por el estilo. todo es cuestion de estudiar cada layout.
En línea


Baruj aba beshem Adonai.
<a href="http://www.cp666group.com">visita mi sitio CP666GROUP</a>
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Factores limitantes del overclockeo
Hardware
Jxk25 0 1,968 Último mensaje 5 Agosto 2011, 01:34 am
por Jxk25
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines