Java - Resize, y centrado

 
Vista:

Resize, y centrado

Publicado por Pedro Pablo (11 intervenciones) el 19/01/2001 00:00:00
Hola!
Estoy haciendo una aplicación Java y, de momento, me he encontrado con tres problemas al utilizar swing.
La primera es que me gustaría que las ventanas que muestro aparecieran centradas en la pantalla. Para eso necesitaría, supongo, conocer la resolución de la pantalla. ¿Cómo puedo averiguarla? Si hay otra forma de centrar una ventana, mediante algún método o algo así, ¿cual es?

La segunda es que quiero controlar los cambios de tamaño de la ventana, para ajustar los componentes que hay en ella. Tengo un método llamado cuando se cambia el tamaño, que recibe el objeto ActionEvent. ¿Cómo puedo sacar de él las nuevas coordenadas? La única forma que se me ocurre es analizar la cadena que obtengo con el método paramString(). ¿Hay alguna forma más cómoda?
Por último, para colocar los componentes utilizo un XYLayout. ¿Cómo puedo modificar la posición y el tamaño de los componentes dentro de ese layout?

¡¡Muchas gracias!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Resize, y centrado

Publicado por Jose (53 intervenciones) el 19/01/2001 00:00:00
Puedo ayudarte en tu primera pregunta:

Has de usar el siguiente método de instancia de la clase java.awt.Toolkit

Dimension getScreenSize()
Tamaño de la pantalla en pixels
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Resize, y centrado

Publicado por Pedro Pablo (11 intervenciones) el 22/01/2001 00:00:00
Estupendo, muchas gracias.

¿Alguien puede ayudarme con la segunda?

¡Gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

2ª : ComponentListener

Publicado por Jose (53 intervenciones) el 22/01/2001 00:00:00
Yo mismo de nuevo : vamos a por la segunda.

El escucha-eventos que necesitas es ComponentListener. La JVM le notificará los cambios de tamaño y posición del componente invocando a componentMoved() y componentResized(). Cuando estos métodos sean llamados debes leer los atributos del componente con getX(),getY(),getWidth(),getHeight() o getLocation() y getSize()


Aquí te dejo un ejemplo con AWT, pero todo lo dicho vale también para Swing (tan sólo debes cambiar Frame por JFrame e incluir import javax.swing.*;). Ten en cuenta que los métodos anteriores son de la clase Component , la cual es la madre de todos los componentes

import java.awt.*;
import java.awt.event.*;

public class Framelillo extends Frame {

int x, y, w, h;

Framelillo() {
addComponentListener( new ComponentAdapter() {
public void componentMoved(ComponentEvent e) {
x = getX();
y = getY();
System.out.println("Movido a "+x+","+y);
}
public void componentResized(ComponentEvent e) {
w = getWidth();
h = getHeight();
System.out.println("Reescalado a "+w+","+h);
}
});
}


public static void main(String [] args) {
Framelillo f = new Framelillo();
f.setSize(200,200);
f.setVisible(true);
}
}


Para la tercera, ¿que es un XYLayout?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:2ª : ComponentListener

Publicado por Pedro Pablo (11 intervenciones) el 22/01/2001 00:00:00
Un XYLayout es un layout que implementan en el JBuilder de Borland, y con el que puedes colocar los componentes dando las coordenadas (x,y) y los tamaños deseados, teniendo total libertad al colocarlos.
También tiene la pega de que ante el cambio de tamaño de la ventana es responsabilidad tuya reajustar los componentes.

Gracias de nuevo por tus respuestas!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar