Welches ist ein besserer Top-Level-Container für dieses Design, JFrame mit Jpanels oder JDesktop mit JInternalFrames

Ich bin ein Anfänger mit Swing und AWT und möchte eine GUI mit Netbeans erstellen. Meine GUI benötigt drei Bereiche, die ich derzeit als JPanels auf einem JFrame betrachte. Ich benötige ein "Drawing" -Panel, das auf Mauseingaben wartet und Java2D-Formen zeichnet. Das Zeichenfeld wird oben links verankert. Die anderen beiden Bereiche sind ein Bildlauffenster "Eigenschaften" und ein Bildlauffenster "Controller". Im Steuerungsfenster wird festgelegt, welche gezeichneten Elemente über Schaltflächen angezeigt werden. Im Eigenschaften-Bildlauffenster werden Details zu allen Formobjekten angezeigt, auf die im Zeichenfenster geklickt wird (Endpunkte, Farben usw.).

Ein typischer Anwendungsfall für den Zeichenbereich besteht darin, dass der erste Klick in den Zeichenbereich die ersten Koordinaten für eine Form (IE: eine Linie) darstellt. Dieser Klick wird als point2d-Objekt erfasst. Der zweite Klick ist das zweite point2D-Objekt und eine Linie wird zwischen den beiden erstellt. Der Controller-Bereich enthält Schaltflächen wie "Kreis", "Linie", "Elipse" usw. Je nachdem, auf welche Controller-Schaltfläche geklickt wird, werden nur Formen dieses Typs im Zeichenbereich gezeichnet. Die Bildlauffenster "Controller" und "Eigenschaften" können nicht verschoben werden. Sie sind gesperrt und können an der unteren bzw. rechten Seite der Benutzeroberfläche geändert werden.

Als Anfänger habe ich Probleme mit den besten Komponenten. Ich habe über JDesktop und JInternalFrame nachgelesen, aber anscheinend brauche ich das alles nicht wirklich. Ein einfacher JFrame mit drei JPanels sollte ausreichen, oder? Ich glaube, ich brauche ein JFrame der obersten Ebene mit einem JPanel für den Zeichenrahmen und zwei JScrollPanels. Ich benötige einen Maus-Listener im Zeichenbereich, um die Koordinaten jedes Klicks zu erfassen, und Listener für jede Schaltfläche im Steuerungsbereich. Kann ich einen Mauszeiger auf ein JPanel setzen und Java2D-Formen darauf zeichnen, oder benötige ich einen anderen (besseren?) Container im JPanel, um meine Zeichnung durchzuführen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage