Witam,
przeszukałem już spory kawał internetu w poszukiwaniu odpowiedzi na mój problem, jednak wszystko to spełzło na niczym. Sytuacja wygląda następująco: projektuję interfejs przy pomocy Swinga i kreatora NetBeansa ("wyklikując" go). Kłopot pojawia się w momencie, kiedy na nowo utworzoną jLayeredPane (standardowe właściwości plus resizing w obu osiach) dodaję następny element - jTabbedPane. Zależy mi na tym, żeby podczas zmieniania rozmiaru głównego okna swój rozmiar zmieniała również TabbedPane, tymczasem jedynym który dostosowuje się jest samo LayeredPane (tylko to podlega resizingowi - jego zawartość już nie).
W jaki sposób sobie z tym poradzić?
Prawdopodobnie przyczyną jest to, że JLayeredPane ustawia celowo typ LayoutManagera na null w swoim konstruktorze. Możesz to sobie zmienić jak sądzę. W Javadoc jest też wyraźnie napisane:
"Note: that these layers are simply a logical construct and LayoutManagers will affect all child components of this container without regard for layer settings."
Niestety, wygląda na to że JLayeredPane 'na sztywno' narzuca swoim komponentom właściwości, jeśli chodzi o to, czego potrzebuję. Jednak dzięki za podpowiedź, jeszcze w tym pogrzebię.
Pozdrawiam
Możesz to zmienić. Czasem wystarczy wywołać odpowiednie metody na już skonstruowanym JLayerPane, a jeżeli nie, to możesz zrobić klasę, która będzie od niej dziedziczyć. Im nowsza wersja Javy, tym łatwiej jest zmienić właściwości takich obiektów.