2016-04-25 12 views
-1

Ich bin neu in GUI-Programmierung mit Java und einige Fragen in meinem Kopf aufgetreten. Ich lerne jetzt das MVC-Muster und habe mich gefragt, wie die Implementierung eines JFrame mit einem Button zum Erstellen von Quadraten beim Klick aussehen würde. Was ich tun möchte ist: Ich habe einen Rahmen und eine Taste, die Taste gedrückt und ein neues Quadrat ist zufällig auf dem Bildschirm positioniert, dann kann ich es in den Rahmen ziehen und seine Position ändern und die Konsole hat eine Ausgabe : Square1 wurde in XY (Koordinaten) verschoben; Dann, wenn die Taste erneut gedrückt wird, wird ein neues Quadrat erstellt (Square2). Wenn ich es ziehe, sagt die Konsole: Square2 wurde nach XY verschoben.Java MVC, mehrere Listener

Irgendwelche Vorschläge, was ich tun sollte, um das zu ermöglichen? Ich weiß, dass mein Modell tatsächlich das Quadrat und seine Eigenschaften ist. Meine Ansicht ist eigentlich der JFrame mit der Schaltfläche. Aber ich weiß nicht, wie man den Controller implementiert, damit ich die Konsolenausgänge für die verschiedenen Objekte bekommen kann.

Vielen Dank!

+1

Sie haben eine sehr breite Frage gestellt (tatsächlich glaube ich, dass Sie mehr als einen gefragt haben). Grundsätzlich benötigen Sie ein Modell, das Informationen über jedes Rechteck enthält. Dieses Modell müsste die Eigenschaften jedes Rechtecks ​​ändern können. Sie würden eine Ansicht haben, die die Rechtecke zeichnen würde und es dem Benutzer erlauben würde, sie an eine neue Position zu ziehen, zu welcher Zeit das Modell aktualisiert werden müsste. Sie benötigen dann einen Controller, um die Ansicht und das Modell miteinander zu verbinden. Sie benötigen eine andere Ansicht, um die Schaltfläche und einen Controller zu verwalten, sie könnten tatsächlich das gleiche Modell verwenden – MadProgrammer

+0

Da Swing bereits eine Form von MVC ist, versuchen, es wieder in eine andere MVC zu wickeln ist problematisch, ich neige dazu, an der Prinzip der Ansicht war ein isoliertes Element, das einen bestimmten Vertrag hat, mit dem der Controller arbeiten kann, aber das bin ich – MadProgrammer

+0

This [Swing GUI] (http://stackoverflow.com/questions/34981403/bufferedimage-not-being-cleared- before-each-rendering/35002727 # 35002727) ist anders als das, was Sie tun möchten, implementiert aber das Modell/Ansicht/Controller-Muster. Sie können diese Swing-GUI als Ausgangspunkt für Ihre Swing-GUI verwenden –

Antwort

0

schnelle Antwort:

"Ihre wichtigste Methode in Ihre Java-Klasse kann fungieren als Ihr Controller sein Ansichten sind Seiten, aber Sie verwenden Swing Komponenten statt, so ist es Ihrer Meinung nach in diesem Fall..