Marek Krotiuk

Marek Krotiuk Student,
Politechnika
Warszawska

Temat: GridBagLayout - weightx/weighty

Witam,

staram się poustawiać elementy z pomocą GridBagLayout, mam jednak problem kiedy przychodzi do zmiany wymiarów okienka. Rozmieszczenie elementów chciałbym mieć następujące:


< element 1 > < element 2 >
< element 3 >


element 1 ma mieć stałą szerokość i zmienną wysokość;
element 2 zmienna wysokość oraz szerokość
element 3 zmienna szerokość, stała wysokość

napisałem coś takiego:


c.fill = GridBagConstraints.VERTICAL;
//c.weightx = 0.3;
//c.weighty = 0.7;
c.gridx = 0;
c.gridy = 0;
pane.add(tempPanel, c);
c.fill = GridBagConstraints.BOTH;
c.weightx = 1;
c.weighty = 1;
c.gridx = 1;
c.gridy = 0;
pane.add(tabbedPane, c);

c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 0;
c.gridwidth = 2;
c.weightx = 1;
c.gridy = 1;
pane.add(log, c);


i tu pojawia się problem, w niektórych ustawieniach wielkości elementy wyglądają mniej więcej jak powinny, jednak po zmianie wszystko zaczyna się walić, element 1 (w kodzie jest to tempPanel) robi się nagle w jednym z ustawień wielkości okna straszliwie wąski, podobnie dzieje się z elementem 3 (tutaj log)

Starałem się ustawić wielkości obiektów przez setPreferredSize() mając nadzieję, że jeśli ustawi się początkowe wielkości poprawnie to potem przy zmianie wielkości pozostaną takie jednak to nie pomogło.

Z góry dziękuję za pomocMarek Krotiuk edytował(a) ten post dnia 28.03.09 o godzinie 00:26
Michał Adrych

Michał Adrych nie istotne, nie
istotne

Temat: GridBagLayout - weightx/weighty

Do tego powinieneś użyć klasy zarządzającej układem graficznym "BorderLayout"

pane.setLayout(new java.awt.BorderLayout());
pane.add(element_1, java.awt.BorderLayout.WEST);
pane.add(element_2, java.awt.BorderLayout.CENTER);
pane.add(element_3, java.awt.BorderLayout.SOUTH);

PowodzeniaMichał Adrych edytował(a) ten post dnia 28.03.09 o godzinie 18:25
Marek Krotiuk

Marek Krotiuk Student,
Politechnika
Warszawska

Temat: GridBagLayout - weightx/weighty

Wydawało mi się, że BorderLayout nie będzie tu pasował, ale nie mogąc już wymyślić nic innego zrobiłem w ten sam sposób który właśnie poleciłeś i po dodatkowym odpowiednim poustawianiu setPreferredSize wszystko działa tak jak powinno

Tak czy inaczej dzięki :)

Podobne tematy


Następna dyskusja:

Problem z GridBagLayout




Wyślij zaproszenie do