Niepoprawne nakładanie na siebie paneli

0

Okej, jak robiłem jakieś GUI w IDE od Borland (Delphi / c++ builder) to mogłem na siebie nakładać panele z różnymi kontrolkami i przyciągać je do przodu (bring to front) tak że mogłem łatwo sterować tym co jest w okienku.

Nie wiem jak uzyskać podobny efekt w edytorze netbeansa. W Free Design nie da się wgl ustawić żadnych kontrolek pod/nad sobą. W Aboslute Layout jestem w stanie je ułożyć pod sobą ale

  • Wiem jak przesuwać kontrolki nad/pod siebie w edytorze, ale nie mogłem znaleźć żadnej metody żeby zrobić to w runtime.
  • Jeżeli ustawiam Windows Look And Feel to po najechaniu na jakąś kontrolkę ona się "odmaluje" nawet jeżeli jest w panelu który jest pod spodem i nie powinno go być widzieć.

Jest też komponent Layered Pane i wiem że w nim da się sterować depth w jakiś sposób i czytałem o tym tu http://docs.oracle.com/javase/tutorial/uiswing/components/layeredpane.html
I przepisałem ten kod ii działało jak oczekiwałem, ale jak spróbowałem przerobić go na panele too nie było żadnego efektu. Nie przeskakiwały.

Ogólnie efekt który chciałbym uzyskać to to że mam kilka kontrolek które potem chciałbym zniknąć je i pojawić inne :> Np te które są na innym panelu.

Nie wiem jak to zrobić. Przy użyciu layered pane czy raczej je jakoś poustawiać w aboslute layout ?

1

To czego szukasz to CardLayout
CardLayout
http://stackoverflow.com/questions/14821952/changing-panels-using-the-card-layout
http://docs.oracle.com/javase/tutorial/uiswing/layout/card.html

działa bardzo fajnie i łatwo sterować.

Ewentualnie możesz użycz Glass Pane ale to już nie takie elastyczne

0

Okej, ustawiłem sobie trzy panele w zewnętrznym panelu. Zewnętrznemu panelowi ustawiłem Layout na "Card Layout" teraz cały panel się zmniejszył i nie mogę już zaznaczyć zewnętrznego tylko te w środku. Jak mogę teraz na chwilę zmienić layout znów na "Free Design" żeby dostać się znów do tych pod spodem?

Mówię o wysiwyg edytorze w NetBeans

0

Nie kombinuj, tylko wrzuć wszystkie panele ze stanem visible = false i zmieniaj ten stan tylko jednemu na raz. Temu który ma być wyświetlany. Ewentualnie możesz dodawać i usuwać do rodzica tylko ten jeden panel, który ma być pokazywany. I po problemie. A instancje paneli możesz sobie trzymać w dowolnych zmiennych lub jakimś kontenerze. Wystarczy je raz stworzyć. A potem wypełniać danymi zgodnie z aktualnym stanem.

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