Java - tworzenie GUI

0

Tworzyłem już wcześniej interfejsy graficzne w Qt oraz w javie na platformę android.
Nigdy nie miałem aż takich problemów jak teraz, korzystając z biblioteki Swing.
W jaki sposób mogę chociażby ustawić stałą wielkość obiektu JPanel?
Dlaczego funkcje setMinimumSize/setMaximumSize nie działają?
Jak mogę zrobić 2 obiekty JPanel, z których jeden zajmuje np. 30% a drugi 70% dostępnej szerokości.

Z góry dzięki za pomoc / jakieś linki.

PS. Aktualnie korzystam z biblioteki Swing i edytora WindowBuilder w eclipse, ale to dopiero początki więc jeżeli waszym zdaniem warto się na coś przerzucić to proszę pisać :]

0

spróbuj setPreferedSize() - winno pomóc.
Do konkretnego ustawienia komponentów w oknie służą przecież layout Managery. Ja korzystam z groupLayout (trochę zagmatwany i sporo pisania ale da się wytrzymać). Jest jeszcze BoxLayout. Do mniej skomplikowanych menedżerów należą flowlayout gridlayout borderlayout. Opisane na stronie Oracla.

http://download.oracle.com/ja[...]ial/uiswing/layout/using.html

0

Używam BoxLayout, mam 2 JPanel ustawione obok siebie.
Jak mam teraz zrobić żeby np. jeden z nich miał zawsze 100px, a drugi zajmował resztę okna?
Mogę ustawić pierwszemu preferredsize na te 100px, ale co z drugim?
Muszę dynamicznie obliczać ile ma zajmować i ustawiać preferredsize za każdym razem kiedy uzytkowanik zmienia wielkosc okna?

0

PS. Aktualnie korzystam z biblioteki Swing i edytora WindowBuilder w eclipse, ale to dopiero początki więc jeżeli waszym zdaniem warto się na coś przerzucić to proszę pisać
Jasne, że warto się przerzucić, bo same biblioteki GUI Javy nie są pierwszej klasy. Jeżeli znasz Qt i Eclipse to najlepiej będzie Ci skorzystać z QtJambi. http://dev-kof.blogspot.com/2[...]lacja-qt-jambi-w-eclipse.html

0

Zdecydowanie wolałbym to zrobić w "zwyklej" Javie.
Bez przesady, chyba da się jakoś ustalić stałą szerokość komponentu.

0

Za mało danych by udzielić sensownej odpowiedzi:
Czy rozmiar całego okna jest stały czy też ustalany metodą pack() na podstawie rozmiarów zawartych w nim komponentów?
Ile jest komponentów w głównym oknie (dwa panele)?
Menadżerem dla okna jest BoxLayout(X_AXIS)?

0

Czy rozmiar całego okna jest stały czy też ustalany metodą pack() na podstawie rozmiarów zawartych w nim komponentów?

Nie, użytkownik może normalnie zmieniać rozmiar okna.

Ile jest komponentów w głównym oknie (dwa panele)?

Tak, załóżmy, że dwa.

Menadżerem dla okna jest BoxLayout(X_AXIS)

Wydaje mi się, że to jest najlepsze rozwiązanie, oczywiście mogę użyć innego.

W Qt wystarczyło dać jednemu z komponentów SizePolicy: expanding i już mielibyśmy efekt o który mi chodzi.

0

Ja używam edytora w NetBeansie. Jak się go umie obsługiwać, to się umie robić dobre elastyczne fragmenty interfejsów.

Tworzę komponent na panelu, wyłączam mu resizability i włączam w tym które mają sie rozszerzać.

Ewentualnie JSplitPane i ustawiasz szerokość lewego/górnego komponentu w % (tzn. w Double 0..1)

0

W jaki sposób wyłączasz resizability komponentu?
Istnieje jakaś funkcja w stylu setResizability(boolean)?

0

setResizable(false)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0