2010-12-18 8 views
8

Czytałem, że JFrame składa się z kilku paneli ... jakie są panele i dlaczego Jframe jest wykonany z paneli? A dlaczego istnieje JPanel, podczas gdy wygląda na to, że JFrame wygląda dokładnie tak samo jak JPanel, ale z paskiem menu i przyciskiem zamykania, więc jaka jest potrzeba na JPanel? Czy ktokolwiek może wyjaśnić mi jasno definicję i zastosowanie tych 3 składników?jakie jest zastosowanie ramy, szyby lub panelu w ruchu?

Odpowiedz

15

Istnieją kontenery najwyższego poziomu, takie jak JFrame. Mogą one służyć jako główne okno, w którym zbudowany jest GUI.

Następnie są pojemniki o średnim poziomie. Muszą być umieszczone w innych pojemnikach, same nie mogą istnieć. Pomagają Ci organizować komponenty lub dodają funkcjonalność. JPanel to bardzo prosty kontener, który pomaga organizować inne komponenty. Podczas gdy JSplitPane dodaje funkcjonalność posiadania dwóch paneli o zmiennej wielkości.

Gdy masz skomplikowany graficzny interfejs użytkownika, możesz użyć JPanels do uporządkowania różnych obszarów GUI, a następnie dodać każdy panel do swojej ramki JFrame.

W języku Java interfejs API Swing wykorzystuje numer Composite Design Pattern. Oznacza to, że możesz komponować bardzo złożone obiekty z innych obiektów i nadal traktować obiekty złożone w taki sam sposób, jak obiekty proste. Więc możesz umieścić JPanel w JPanelu i nadal zachowuje się jak JPanel.

Pomyśl o tym jak o pudełku (lub zestawie do szycia). Wykonany jest z dużego pojemnika. Zamiast umieszczać wiele małych obiektów w tym dużym pojemniku i utrudniać późniejsze zarządzanie, możesz umieścić mniejsze pojemniki wewnątrz dużego pudełka. Następnie haczyki i obciążniki itp. Wchodzą do przedziałów. Łatwiejsze w zarządzaniu. Wielkie pudło to JFrame, a przedziały to JPanele.

+2

Rozumiem ... ale wciąż mam inne pytanie. W mojej książce znajduje się rysunek JFrame'a mówiącego, że składa się on z kilku paneli: panelu głównego, panelu warstwowego, tafli treści i tafli szkła, jaka jest ich potrzeba? I jest panelem == panel? – Ahmed

+2

Ramki są niezwykle złożonymi obiektami, które muszą uwzględniać wiele sytuacji. Powinny zachowywać się podobnie na wielu różnych platformach. Aby to osiągnąć, konieczne jest rozbicie odpowiedzialności za różne rzeczy na ich własne składniki. Ta strona: http://download.oracle.com/javase/7/docs/api/javax/swing/JRootPane.html pomogę Ci zrozumieć przeznaczenie niektórych z paneli, o których wspomniałeś. –

Powiązane problemy