Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Jak działać z designerem Swinga?

16 views
Skip to first unread message

Borneq

unread,
Jan 24, 2012, 5:45:34 AM1/24/12
to
Zainstalowałem WindowBuilder. Bardzo fajne narzędzie.
Chcę dodać kontrolkę JList na JFrame. Dodaję JScrollPane, na formie
pokazują mi się obszary Center, North, South, West, East. Po dodaniu na
formie mam kontrolkę bardzo małej szerokości i wysokości formy. Dodaję
JList do JScrollPane, mam z kolei bardzo szeroką kontrolkę, któej nie
mogę zmienić rozmiaru. Czy jest możliwe dokładne ustalenie wielkości
kontrolek i dla JList zainicjowanie ją jakąś zawartością?

Borneq

unread,
Jan 24, 2012, 5:49:27 AM1/24/12
to
W dniu 2012-01-24 11:45, Borneq pisze:
W NetBeans mogę łatwo zmieniać wielkość i położenie kontrolek, ale
generuje dużo kodu.

Piotr

unread,
Jan 24, 2012, 6:41:25 AM1/24/12
to
W dniu 2012-01-24 11:49, Borneq pisze:
Prawdopodobnie WindowBuilder domyślnie używa BorderLayera a NetBeans
pewnie GroupLayout.
Zobacz Layout Managers

Borneq

unread,
Jan 24, 2012, 9:25:10 AM1/24/12
to
W dniu 2012-01-24 12:41, Piotr pisze:
> Prawdopodobnie WindowBuilder domyślnie używa BorderLayera a NetBeans
> pewnie GroupLayout.
> Zobacz Layout Managers

Z BorderLayoutem nic nie można zrobić. GroupLayout bardziej można
dostosować ale generuje dużo kodu. Layout absolute jest całkiem dobry,
można ustalać położenia obiektów, jednak nie bardzo nadaje się przy
zmianie wymiarów kontrolki. Przydałyby się właściwości jak Align i jakaś
metoda wołana przy zmianie wymiarów Frame, gdzie można by ustalać
położenia jak byśmy chcieli.

Piotr

unread,
Jan 24, 2012, 9:49:11 AM1/24/12
to
W dniu 2012-01-24 15:25, Borneq pisze:
Ja robię GUI z palucha, w takich sytuacjach polecam miglayout

Mariusz Pieniążek

unread,
Jan 24, 2012, 6:52:34 PM1/24/12
to
W dniu 2012-01-24 11:45, Borneq pisze:
Włącz sobie w okienku "Properties" przycisk "Show Advanced Properties" i
ustaw "preferredSize", "maximumSize" i "minimumSize". Jeśli umieścisz
kontrolkę w obszarze "Center", a w innych będzie pusto zajmie ona całe
okienko. W innym obszarach po zdefiniowaniu tych parametrów również się
pojawi, ale będzie rozciągana odpowiednio do zachowania Layout Managera,
w tym przypadku BorderLayout. Layout Managera rzecz jasna można zmienić
lub całkiem wyłączyć (mamy wtedy absolutne pozycjonowanie). Przy jego
wyłączeniu należy określić nie tylko jego rozmiary, ale również
położenie. Wyłączyć można tak:
frame.getContentPane().add(list, null);

lub tak:

list.setLayout(null);

Nie jest to jednak najlepsze. Lepiej przemyśleć wygląd GUI i dobrać
Layout Managera (oczywiście można używać kilku w różnych kontenerach).
MigLayout ktoś tu już polecał - podobno całkiem niezły.

Borneq

unread,
Jan 25, 2012, 5:53:49 AM1/25/12
to
W dniu 2012-01-25 00:52, Mariusz Pieniążek pisze:
> Włącz sobie w okienku "Properties" przycisk "Show Advanced Properties" i
> ustaw "preferredSize", "maximumSize" i "minimumSize". Jeśli umieścisz

Dzięki, pojawiło się dużo ważnych właściwości jak alignmentX i Y
Na razie używam GroupLayout, choć może najlepsze byłoby pozycjonowanie
absolutne + metoda wywoływana przy zmianie rozmiarów gdzie podawalibyśmy
przeliczoną pozycję każdej kontrolki.

sielim

unread,
Jan 30, 2012, 8:16:51 AM1/30/12
to


Użytkownik "Borneq" napisał w wiadomości grup
dyskusyjnych:jfmf05$87r$1...@inews.gazeta.pl...
Skoro już Swing, to polecam zainteresować się JGoodies i siedzącym
w nim FormLayout'em. Kiedyś było to komercyjne, ale wiele się
zmieniało, trzeba by zajrzeć.

0 new messages