2012-01-06 9 views
8

Chcę umieścić niektóre przyciski w pozycji JPanel w losowych pozycjach (x, y), a te klasy układu są denerwujące.Umieść komponenty na dowolnych współrzędnych (x, y).

Czy to jest możliwe w Swing?

+4

Lepiej poznać różnych [Menedżerów Układu] (http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html). – trashgod

+1

Nie, zdecydowanie nie chcesz, aby ręcznie wykonywany układ wahań. I nie, nie ma nic denerwującego w układach menedżerów - z wyjątkiem tego, że myślisz, że nauka jest denerwująca sama w sobie ;-) – kleopatra

+1

dlaczego wszyscy zgadują drugi raz? może po prostu potrzebuje pełnej kontroli nad pozycjami przycisków (jak na przykład w jakiejś grze, w której się poruszają, a użytkownik musi je uderzyć). – fortran

Odpowiedz

9

Można ustawić współrzędne jeśli używasz null układ:

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

Jednak zaleca się użycie układów. Klasy układu nie są "denerwujące", są twoimi przyjaciółmi, jeśli je dobrze rozumiesz.

Proponuję lekturę tutorial about GridBagLayout, jest łatwa do zrozumienia (trochę tablic html) i bardzo mocna.

+0

+1 za polecanie LayoutManagers, -0,5 za robienie ręcznego układu w niekompletny sposób (hach, ładnie prooving użyteczności menedżerów ... :-) – kleopatra

+0

Uzgodniono, zredagowałem. – Stephan