|
|
modulare GUI-Elemente in Klassen integrieren |
|
heim0r |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 11.12.2013, 18:39
Titel: modulare GUI-Elemente in Klassen integrieren
|
|
|
|
|
Hallo allerseits
Ich bin noch recht unerfahren in Matlab, bin aber grade dabei ein kleines Projekt damit zu realisieren:
Zusammengefasst geht es darum, eine (möglichst einfach modular) erweiterbare Programmstruktur zu entwerfen. Zu Beginn soll sie folgendes leisten können:
- Ist-und Solldaten empfangen und in einer Datenbank speichern
- diese Daten statistisch weiter auswerten, ebenfalls in einer weiteren Tabelle der DB abspeichern
- bestimmte Datensätze an die Anlage zurückschicken
Daraus ergibt sich dann folgende Klassenstruktur:
Superclass(Abstrakt) -Subclass
<<process>> -process1 -process2
(Soll-Werte der Anlage)
<<sensor>> -sensor1 -sensor2
. (Sensor-Istwerte)
<<controller>> -controller1 -controller2
. (statistische Auswertung)
von der struktur her hat das auch alles bei manueller Commandwindow-Eingabe soweit geklappt.
--------
Da das Ganze auch eine GUI erhalten soll, habe ich versucht diese in meinen OOP Ansatz mit einzubeziehen.
Mein Ansatz dazu ist, dass ich zuerst eine Superklasse ergänze:
visu -process -sensor -controller -gui
von der die vorhanden Klassen ein einheitliches "Moduldesign" und sonstige wiederkehrende Methoden bezüglich der Visualisierung erben. (Die GUI der einzelnen Module ist zb. jeweils als Panel definiert etc
)
Zusätzlich habe ich die Klasse gui angelegt, die quasi der Rahmen des Ganzen ist - Instanzen von den anderen Klassen anlegt und diese in klasseninternen Feldern abspeichert.
Mein Gedanke dahinter war, dass ich so in einer gui Instanz zugriff auf jegliche involvierte andere Klassen/Instanzen habe und so die Problematik mit den getrennten Workspaces umgehe.
-----
Oberflächig scheint es auch zu funktionieren:
im gui Konstruktor lege ich jeweils eine Instanz von control1 sensor1 und process1 an und mittels zb. gui.control1.addToGui() auf einem Callback eines Buttons wird das Modul dann auch angezeigt.
Wenn ich jetzt allerdings zb. auf einem callback gui.sensor1.openMysqlConnection() ausführe (diese Methode instanziert ein database-element und speichert es unter sensor1.conn), wird dieses Feld,wenn ich display(gui.sensor1) in die openMysqlConenction() Methode packe, auch angezeigt, aber irgendwie erreicht das Ganze dann nicht die gui Instanz, denn dort hat sich an gui.sensor1 nichts verändert
Danke schonmal wenn jemand bis hierhin gelesen hat und mir halbwegs folgen konnte
Aber meine Frage ist jetzt, ob ich irgendwo einen groben Denkfehler in meiner Konstruktion habe, ob es an Matlab spezifischen Eigenarten liegt, oder woran es sonst liegen könnte. Da ich wie gesagt nur Einsteiger-Wissen in JAVA habe bin ich da momentan etwas überfragt.
Gruß
|
|
|
|
|
heim0r |
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 11.12.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2013a
|
|
|
|
|
|
Verfasst am: 11.12.2013, 19:17
Titel:
|
|
so, direkt mal hier angemeldet und auch schon den ersten Anhaltspunkt gefunden:
könnte es sein, dass meine superklassen von handle erben müssen, damit es funktioniert??
gruß
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 12.12.2013, 12:31
Titel:
|
|
Hallo
Ja für die Interaktion mit der GUI sollten deine Klassen von der Klasse handle abgeleitet werden
|
|
|
heim0r |
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 11.12.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2013a
|
|
|
|
|
|
Verfasst am: 18.12.2013, 14:37
Titel:
|
|
jap super, hat geklappt
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|