2009-09-30 18 views
6

W .NET znajduje się formant zwany zakotwiczeniem, który służy dynamicznie do zmiany wielkości kontrolek za pomocą formularza. Kiedy kontrola jest zakotwiczona do postaci, a forma jest zmieniana, kontrola zachowuje odległość między pozycją kontrolną a pozycją kotwicy.Sterowanie zakotwiczeniem i dokowaniem w java Swing

Moje pytanie dotyczy wszystkich elementów sterujących w języku Java, które działają tak samo, jak zakotwiczenie w .net.
Jeśli chodzi o przykład, wybrałem pole tekstowe i umieściłem je na panelu i odpowiednio go zmieniłem. Teraz, gdy zmieniam rozmiar okna (JFrame) lub maksymalizuję okno, pole tekstowe nie będzie utrzymywać takiej samej odległości jak poprzednio. Używam netbeans i nie znalazłem żadnych właściwości w menedżerze palety, który odpowiada na moje pytanie. Proszę wyjaśnij mi przykład lub linki.

Odpowiedz

4

Java Swing używa Managers Układ zarządzać rozmiar i stanowisko służbowe elementów wizualnych. Jest to oficjalny poradnik java, w jaki sposób korzystać z tej menedżerów układ:

http://java.sun.com/docs/books/tutorial/uiswing/layout/using.html

I jest krótki opis najbardziej popularnych menedżerów układ

FlowLayout (domyślnie): zbywa składniki pozostawione na prawo i na dół.

BorderLayout: dzieli kontener na PÓŁNOCNE, POŁUDNIOWE, ZACHODNIE, WSCHODNIE centrum CENTRUM. Tylko jeden komponent według pozycji. Komponenty na obramowaniu rozszerzają się, a komponent centralny korzysta z przestrzeni dostępnej

GridLayout: zainicjalizujesz menedżera, wskazując liczbę rzędów i kolejek, jakie ma siatka. Każda komórka ma ten sam rozmiar i zaczynasz dodawać komponent w lewej górnej komórce.

GridBagLayout: NAJBARDZIEJ drobnoziarniste zarządzanie układem, możesz zrobić wszystko z tym, ale jest nieco skomplikowane, zobacz dokumentację java dla tego.

NullLayout (w przypadku unieważniania układu odwzorowania kontenera): brak menedżera układu, komponenty używają właściwości lokalizacji i rozmiaru do wyświetlania na komponentach.

Oczywiście kontenery znajdujące się w innych kontenerach mogą używać innego menedżera układu niż ich rodzic. Łączenie menedżerów układów jest trudną sztuką do nauki.

1

Netbeans ma wbudowaną obsługę projektowania interfejsów graficznych za pomocą budowniczego GUI Matisse. Jest to najbardziej zbliżony do przeciągnięcia styl formularza kropli &, który jest dostępny w środowiskach takich jak VB.

Dostępna jest demonstracja flash here.

(Osobiście nie jestem wielkim fanem tego podejścia choć jak to autogenerates dużo kodu, który szybko staje unmaintainable, zwłaszcza jeśli nie wszyscy w zespole rozwoju używa Netbeans).

0

Jeśli masz dostał tylko jedną kontrolę, a następnie użył java.awt.BorderLayout, a dodanie kontroli za pomocą BorderLayout.CENTER jest najlepszym wyborem.

Jeśli masz wiele kontrolek, musisz użyć java.awt.GridBagLayout.

Trzeba ustawić:

gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; 
gridBagConstraints.fill = GridBagConstraints.BOTH; 
gridBagConstraints.weightx = 1; 
gridBagConstraints.weighty = 1; 

podczas dodawania kontroli, który ma zostać ponownie rozmiar.

Jest to poradnik o tym tutaj:

http://java.sun.com/docs/books/tutorial/uiswing/layout/gridbag.html