Który pojemnik jest lepszy dla tego projektu, JFrame z Jpanels lub JDesktop z JInternalFrames

Jestem początkującym użytkownikiem Swing i AWT, staram się zbudować GUI używając Netbeans. Mój GUI wymaga trzech obszarów, o których obecnie myślę jako JPanels na JFrame. Potrzebuję panelu „Rysunek”, który będzie nasłuchiwał wejścia myszy i rysował kształty Java2D. Panel rysowania zostanie zakotwiczony w lewym górnym rogu. Pozostałe dwa obszary to panel przewijania „Właściwości” i panel przewijania „Kontroler”. Panel kontrolny określi, które narysowane elementy będą wyświetlane za pomocą przycisków, a panel przewijania właściwości pokaże szczegóły dotyczące dowolnego obiektu kształtu, który został kliknięty w panelu rysowania (punkty końcowe, kolor itp.).

Typowy przypadek użycia dla obszaru rysowania jest taki, że pierwsze kliknięcie w obszarze rysunku będzie pierwszym zestawem współrzędnych dla kształtu, IE: linia. To kliknięcie zostanie przechwycone jako obiekt point2d. Drugie kliknięcie będzie drugim obiektem point2D, a między nimi zostanie zbudowana linia. Obszar kontrolera będzie miał przyciski, takie jak „Okrąg”, „Linia”, „Elipse” itp. W zależności od tego, który przycisk kontrolera zostanie kliknięty, w obszarze rysunku zostaną narysowane tylko kształty tego typu. Panele przewijania kontrolera i właściwości nie będą ruchome, zostaną zablokowane i zmienione rozmiary odpowiednio do dolnej i prawej strony GUI.

Jako początkujący walczę z najlepszymi komponentami do użycia. Czytałem na JDesktop i JInternalFrame, ale wygląda na to, że tak naprawdę nie potrzebuję tego wszystkiego. Wystarczy JFrame z trzema JPanels, prawda? Mówiąc dokładniej, myślę, że potrzebuję JFrame na najwyższym poziomie, z JPanel dla ramki rysunkowej i dwóch JScrollPanels. Potrzebuję odbiornika myszy w okienku rysowania, aby przechwycić współrzędne każdego kliknięcia, a słuchacze dla każdego przycisku w panelu sterowania. Czy mogę umieścić odbiornik myszy na JPanel i narysować do niego kształty Java2D, czy będę potrzebował innego (lepszego?) Kontenera w JPanelu, aby wykonać mój rysunek?

questionAnswers(3)

yourAnswerToTheQuestion