Realisierung eines GUI-Segments

Status
Nicht offen für weitere Antworten.

Xandro

Bekanntes Mitglied
Moin,

ich habe mich heute mal mit den grundlegenden Zügen meiner Diplomarbeit befasst,
die in ca. 2,5 Jahren abzugeben ist. Okay, noch lange hin, aber habe auch viel vor.

Ich möchte ein Projekt entwickeln, dessen Aufgabe es sein wird,
Containerschiffe und deren Ladung zu verwalten.
Die Vielschichtigkeit des Programms ist eine - um mal ehrlich zu sein - krasse Herausforderung,
aber deshalb beginne ich auch schon sehr sehr früh damit.

Was genau alles möglich sein soll ist noch ungewiss, deshalb brauche ich erst einmal einen Anstoss fürs Wesentliche.

Auf dieser Seite findet Ihr ein Beispiel für die Darstellung von Abteilen (Bays) auf einem Handelsschiff.
Diese Bays sind in X-Achse (Rows) und Y-Achsen (Tiers) unterteilt.
Ich möchte nun einen Dialog realisieren, der im Endeffekt genau das anzeigt.
Mit den Informationen an den Seitenrändern, als auch den Farben für einzelne Containerklassen.

Meine Frage wäre nun, wie man soetwas realisieren könnte?
Da das ganze Programm leichtes Click&Go unterstützen soll, sprich hauptsächlich Maussteuerung,
muss ich die meisten Dinge grafisch regeln.

Das Prinzip:
Ich habe einen Dialog, der genau das Schema zeigen soll wie auf dem Bild.
Nun wähle ich zwischen verschiedenen Containertypen aus (20-Fuss Länge, 40-Fuss etc.).
Mit der Maus wird nun genau ein Rechteck in dem Schema angeklickt,
das Rechteck bekommt einen farbigen Rand, dessen Farbe den Typ des Containers darstellt.
Weiteres passiert mit anderen Containern, derselben und unterschiedlicher Art.
Container, die gefährliche Ladung beinhalten werden zusätzlich noch mit Symbolen gekennzeichnet.
Der Container müsste sozusagen als Objekt auf dem Schema verfügbar sein,
so dass allgemeine Informationen abfragt werden können wie Position des Containers, ID, Ladehafen, Zielhafen etc.
Nicht zu vergessen fährt ein Schiff ja mehrere Häfen an, also wird die Möglichkeit bestehen,
Container aus dem Schema wieder zu entfernen bzw. auch zu verschieben.
Da das ganze nicht für ein spezielles Schiff konzipiert sein wird, muss es auch möglich sein,
das Schema an sich (Bays/Rows/Tiers) zu modifizieren und auszudehnen bzw. zu stauchen.
Jedes Schiff besitzt nunmal eine andere Grösse und somit auch unterschiedliche Kapazitäten.
Heisst also, ich werde noch einen Editor dazu basteln müssen, damit man sich das ganze nach seinen Wünschen zurechtwerkeln kann.

Für den ein oder anderen könnte sich das jetzt ein wenig 'einfach' anhören, aber das ist nur ein minimaler Teil,
den es zu realisieren gilt ... Stabilitäts- und Drehmomentskurven sind noch andere nette Dinge.

Meine Frage wäre nun ... kann ich das alles mit der 2D-API lösen - natürlich in Verbindung mit anderen Dingen -
oder soll ich lieber Swing-Komponenten verwenden?
Ich dachte schon an eine extrem modifizierte JTable ... aber der Gedanke an sich ist wahrscheinlich genickbrechend.

Und ... es ist schon spät, also wenn was nicht verstanden wurde ... fragen!
 

Wildcard

Top Contributor
Das solltest du relativ schnell hinkriegen:
Die Hauptfläche solltest du IMO nicht mit Swing-Komponenten füllen.
Nimm stattdessen eine JComponent die ihr Graphics Objekt an deine Kind-Objekte weiterreicht.
Das wichtigste Kind sollte hierbei die Lagerfläche sein die wiederrum 'slots' enthält.
Per drag 'n'drop kannst du dann Container in die Fläche ziehen, die sich auf den slots positionieren.
Jedes Objekt muss sich selbst zeichnen können und über eigene bounds verfügen.

vergiss nicht das ein auf einem Containerschiff zB Kühlcontainer nur an bestimmten slots positioniert werden können da entsprechende Anschlüsse vorhanden sein müssen...

Weiterhin solltest du die Möglichkeit beachten das Container eventuell gestappelt werden können.
Aber wie gesagt. So tragisch sollte das nicht sein. Plan mal eine Woche ein...

Interessant währe natürlich eine automatische Optimierung der Containerpositionen, da das soweit ich weiß derzeit noch weitgehend Handarbeit ist, aber dann wird's schon deutlich schwieriger (aber dafür kann man's hinterher evtl. sogar verkaufen :wink: )
 

Xandro

Bekanntes Mitglied
Das hört sich doch mal sehr vielversprechend an *g*
Problematischerweise habe ich bisher nie wirklich mit Graphic Objects gearbeitet *hust*
Darin liegt wohl auch das leichte Unverständnisse bezüglich der Nutzung von Komponenten.
Aber immerhin habe ich nun einen Ansatz, wie es anzugehen wäre.

Die Plugs für die Kühlcontainer sind natürlich berücksichtigt und können dann über den Editor gelöst werden,
es soll ja vollfunktional werden, sprich der Eigner muss die Möglichkeit besitzen, das Programm an sein Schiff anzupassen.
Da ich selbst Seemann bin, habe ich schon einige Programme dafür gesehen und die haben mir nie gefallen,
deshalb wollte ich es unbedingt umsetzen, mal neumodischer zu werden.
Die Benutzerführung dieser etwas veralteten Programme hat mich immer geärgert.

Beispiel für sinnlose Rumklickerei:
Links ist die Navigationsleiste mit Containern/Stabilitäten/gefährliche Güter etc.
Wählt man ein Element aus, poppt ein Dialog auf der rechten Seite mit dem entsprechenden Inhalt.
Dieser Dialog 'muss' mit einem Zurück- oder Exit-Button verlassen werden,
sonst kann man keinen neuen Dialog öffnen.

Für mich total benutzerunfreundlich...

Und das mit der Stapelung ist auch irgendwie klar, dass man keine Container in luftige höhen laden kann,
wenn darunter 'nichts' vorhanden ist ausser 10m freier Raum. *g*

Ich danke Dir erstmal dafür, werde ich mich mal mit Graphics auseinandersetzen und mich mit dem Problem weiter befassen!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Idee zur Realisierung eines Hotkeymanagers in Java Allgemeine Java-Themen 2
M Technische Realisierung von Atomic Datentypen Allgemeine Java-Themen 16
GenerationLost Input/Output Custom Serialization - hilfe bei Realisierung Allgemeine Java-Themen 8
C Projekt Realisierung Allgemeine Java-Themen 7
U Realisierung einer "Plugin-Schnittstelle": Allgemeine Java-Themen 12
M Realisierung einer dynamischen Tabelle unter Android Allgemeine Java-Themen 3
F Design Pattern zur Realisierung von Mehrfachvererbung? Allgemeine Java-Themen 8
clemson Realisierung verschiedener Datenspeicherungen Allgemeine Java-Themen 8
O regulärer Ausdruck zum durchsuchen eines Strings verwenden Allgemeine Java-Themen 2
T Rotationswinkel eines Bildes bestimmen Allgemeine Java-Themen 4
C Probleme beim Erstellen eines runnable-jar files Allgemeine Java-Themen 1
J JavaScript innerhalb eines Java Projekts ausführen Allgemeine Java-Themen 2
Encera Größe eines Objektes in Byte berechnen Allgemeine Java-Themen 2
8u3631984 Prüfen ob min. ein Element eines Sets in einem anderen Set enh Allgemeine Java-Themen 4
M Array Rang eines Elements Allgemeine Java-Themen 4
OnDemand Teile eines Links entfernen Allgemeine Java-Themen 6
H Auslesen eines (LDAP-)Attributs in Active Directory Allgemeine Java-Themen 2
W JSON parsen eines ,mit JS.stringify erstellten Strings Allgemeine Java-Themen 27
H Textposition eines gedrehten Textes verschieben Allgemeine Java-Themen 8
berserkerdq2 run-methode eines Threads so programmieren, dass 30x die Sekunde etwas ausgeführt wird. Allgemeine Java-Themen 44
E Ersetzen eines Bildes in der Kopfzeile eines Word-Docx-Dokuments mit Apache POI XWPF Allgemeine Java-Themen 0
N Fahrtrichtung eines selbstfahrenden Auto ändern Allgemeine Java-Themen 3
T Letztes Zeichen eines Strings enfernen Allgemeine Java-Themen 14
S Übergabe eines Sortierkriteriums für ein Artikel Array mittels BiPredicate<Artikel, Artikel> Allgemeine Java-Themen 13
gotzi242 Schatzsuche mithilfe eines O(log n) Algorithmus Allgemeine Java-Themen 2
C Koordinaten LONG/LAT eines neuen Punktes in bestimmter Entfernen und Winkel berechnen Allgemeine Java-Themen 3
Tobero Meine Funktion für das beinhalten eines Punktes in einem Kreis funktioniert nicht Allgemeine Java-Themen 5
LimDul Direktes return eines Array geht nicht Allgemeine Java-Themen 20
S Mittelwert anhand eines Stream berechnen Allgemeine Java-Themen 5
kodela Breite eines erweiterten Monitors feststellen Allgemeine Java-Themen 5
R Zeilen eines 2d Arrays abwechselnd links und rechts mit Nullen auffüllen Allgemeine Java-Themen 14
Zrebna Alternative Darstellung eines Codesnippets Allgemeine Java-Themen 33
kodela Inhalt eines Arrays ändert sich mysteriös Allgemeine Java-Themen 2
bueseb84 Wget mit Wildcards - oder wie lädt man bei JFrog die letzte Version eines Artifacts herunter Allgemeine Java-Themen 3
N Erkennen eines Programs Allgemeine Java-Themen 2
N Pausieren eines Programmes Allgemeine Java-Themen 4
D Input/Output Implementierung eines CommandHandlers/Parsers für viele Eingaben Allgemeine Java-Themen 26
M Gibt es eine API die den aktuellen Wert eines Indikators beim Trading zurückgibt? Allgemeine Java-Themen 7
F Wie bekommt man alle Filenamen eines Webserver Verzeichnisses Allgemeine Java-Themen 6
A Fehler beim Öffnen eines Projekts Allgemeine Java-Themen 6
N Eigenschaften eines Buttons per Setter verändern Allgemeine Java-Themen 5
S Ausfuehrung eines Programms aufzeichnen..? Allgemeine Java-Themen 4
X Ermittlung eines doppelte Paars mit Streams Allgemeine Java-Themen 50
Stonie Prüfen von direkter Implementierung eines Interfaces Allgemeine Java-Themen 7
S Vorbereitung eines Praktikums Allgemeine Java-Themen 4
H Aufruf eines Web Service anhand übergebenen Parameter Allgemeine Java-Themen 2
M Weiterleiten von empfangenen Nachrichten eines StompSessionHandlers Allgemeine Java-Themen 1
J Programm zum Suchen eines Wortes im Dateisystem Allgemeine Java-Themen 4
H Rename eines Projekts Allgemeine Java-Themen 1
J Fenstergröße eines anderen Programmes auslesen Allgemeine Java-Themen 9
ReinerCoder auf Klassen innerhalb eines package zugreifen Allgemeine Java-Themen 22
Meeresgott Erste Schritte Sourcetree - Git | Suchen eines Commits Allgemeine Java-Themen 2
E Status eines USB Mikrofon abfragen Allgemeine Java-Themen 2
DaCrazyJavaExpert OOP Ansätze und Tipps zum Porgrammieren eines Taschenrechners Allgemeine Java-Themen 25
A OOP Problem beim Berechnen der größten Fläche eines Ringes Allgemeine Java-Themen 19
JavaNewbie2.0 Start eines Anderen Programm erkennen Allgemeine Java-Themen 6
I Verbindung eines Java-Plugins mit Webserver Allgemeine Java-Themen 3
L Auswertung eines Testes funktioniert nicht Allgemeine Java-Themen 37
G Iteratoren - Wie kann man mithilfe von Iteratoren nur jeden zweiten Wert eines TreeSets ausgeben? Allgemeine Java-Themen 4
GreenTeaYT Elemente eines 2Dim LinkedList von links nach rechts ausgeben? Allgemeine Java-Themen 0
B Spalten eines 2d-Arrays Allgemeine Java-Themen 2
M Rechenprogramm eines wissenschaftlichen Taschenrechners Allgemeine Java-Themen 4
S Eigenschaften (hier Verknüpfung) eines Files lesen Allgemeine Java-Themen 2
E Typüberprüfung eines chars Allgemeine Java-Themen 5
H Hilfe bei Erstellung eines Hilfe Fenster bei Tastendruck (F1 bei Win98) Allgemeine Java-Themen 5
T Teile eines Double-Wertes verändern Allgemeine Java-Themen 2
R Rückgabe eines Arrays durch Funktion Allgemeine Java-Themen 9
H Datentypen Typ eines Arrays überprüfen Allgemeine Java-Themen 9
RalleYTN DPI eines Bildes ändern Allgemeine Java-Themen 4
N Methoden Methoden einer Klasse auf Grundlage eines Strings aufrufen Allgemeine Java-Themen 6
K Bestimmten Bereich eines Strings lesen Allgemeine Java-Themen 6
C -Verschiedene Versionen eines Programms verwalten Allgemeine Java-Themen 7
O Datentypen Erstellung eines Containers, der verschachtelte Map-Strukturen beherbergen kann Allgemeine Java-Themen 0
A einmalige Ausführung eines Methodenabschnittes Allgemeine Java-Themen 3
F CPU Last eines Thread ausfindig machen Allgemeine Java-Themen 0
L Menge der Buchstaben eines Textes zählen Allgemeine Java-Themen 3
F Teil eines Bildes laden Allgemeine Java-Themen 1
Neumi5694 Operatoren regEx für das Erstellen eines Strings verwenden Allgemeine Java-Themen 3
P Löschen eines keys in einer SortedMap Allgemeine Java-Themen 5
RalleYTN Input/Output URL eines Zip Entry? Allgemeine Java-Themen 2
S Alle Methodenaufrufe eines Threads notieren..? Allgemeine Java-Themen 7
J NullPointerExeption bei Inizialisierung eines Arrays Allgemeine Java-Themen 3
I Setzen und Lesen eines Objektes (Enum?) Allgemeine Java-Themen 10
L Implementierung eines AVT-Baums Allgemeine Java-Themen 2
D Größe der Zahlenkombinationen eines Arrays begrenzen Allgemeine Java-Themen 3
D Objekt entlang eines Funktionsgraphens bewegen Allgemeine Java-Themen 6
B Existenz eines Files max 30 sec prüfen Allgemeine Java-Themen 5
U Koordinaten alle Pixel eines Dreiecks zeichnen ausgeben Allgemeine Java-Themen 5
P Wie funktioniert das Feedback eines Klicks auf eine Java GUI Allgemeine Java-Themen 10
thet1983 nach teilen eines Dateinamens suchen Allgemeine Java-Themen 6
T Bezeichnung eines Objektes mit String/int kombinieren Allgemeine Java-Themen 3
Z Auswerten eines eingegeben Termes Allgemeine Java-Themen 13
X Registrierung eines Ecore-Models außerhalb der Eclipse-Umgebung Allgemeine Java-Themen 0
R Instanzen eines Programms Allgemeine Java-Themen 8
I Arbeitsmaterialien eines Softwareentwicklers? Allgemeine Java-Themen 7
L Größe eines Objekts im Arbeitsspeicher Allgemeine Java-Themen 1
D Name eines Nicht-String Objekts ausgeben Allgemeine Java-Themen 4
A Helligkeit eines Bildes berechnen Allgemeine Java-Themen 1
L Anzahl der Tage eines Monats Allgemeine Java-Themen 3
S Java Problem bei der Rückgabe eines Arrays Allgemeine Java-Themen 19

Ähnliche Java Themen

Neue Themen


Oben