2012-01-06 29 views
8

Quiero colocar algunos botones en un JPanel en posiciones aleatorias (x, y), y estas clases de diseño son molestas.Coloque los componentes en coordenadas arbitrarias (x, y)

¿Esto es posible incluso en Swing?

+4

Es mejor aprender sobre los diferentes [Administradores de diseño] (http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html). – trashgod

+1

No, definitivamente _no desea_ hacer ningún diseño de balanceo manualmente. Y no, no hay nada molesto sobre el layoutManagers, excepto que piensas que el aprendizaje es molesto en sí mismo ;-) – kleopatra

+1

¿por qué todo el mundo está cuestionando el op? tal vez solo necesita un control completo sobre las posiciones de los botones (como, por ejemplo, en algún tipo de juego donde se muevan y el usuario tenga que golpearlos). – fortran

Respuesta

9

Es posible ajustar las coordenadas si se utiliza un diseño nulo:

panel.setLayout(null); 
Button b = new Button(....); 
panel.add(b); 
b.setSize(width, height); 
b.setLocation(x,y); 

pero se recomienda encarecidamente el uso de diseños. Las clases de diseño no son "molestas", son tu amigo si las entiendes correctamente.

Propongo leer un tutorial about GridBagLayout, es fácil de entender (un poco tablas html) y muy poderoso.

+0

+1 para recomendar LayoutManagers, -0.5 para hacer el diseño manual de forma incompleta (hach, probando muy bien la utilidad de los administradores ... :-) – kleopatra

+0

De acuerdo, editado. – Stephan

Cuestiones relacionadas