Abspeichern eines kompletten JPanels

G

Gast2

Gast
ICh muss hdi absolut recht geben. Seine Ausführungen bezüglich der Festlegung auf einen JTable waren genau der Grund wieso ich das Business Model angesprochen hatte. Auch wenn das TableModel schon ein Model ist so legt man sich fest.

Man kann bei Wechsel der Anzeigeart natürlich sein Model anpassen, aber ist das wirklich sinnvoll?

Unabhängig davon geht der TO auf diese Thematik sowieso nicht ein sondern versucht einfach nach wie vor alles aus der GUI zu serialisieren.
 

ThreadPool

Bekanntes Mitglied
[...]
Die einzelnen Views haben eine Referenz auf das Business-Model, und rufen dort entsprechende manipulative Methoden auf.
[...]
Sowohl die einzelnen Views, als auch die gesamte business-Schicht sind vollständig unabhängig voneinander.[...]

Letzteres kann so nicht stimmen wenn Ersteres gilt. Sobald die View irgendeinen Typen aus der Domäne kennt und auch noch "manipulative"-Methoden darauf aufruft sind die nicht mehr unabhängig.

Übrigens durch solche Gedankengänge wer wen kennen und wer mit wem über was kommunizieren soll sind reichlich Variationen bezgl. MVC entstanden und irgendwie gibt es immer Anwendungen in denen man die eine oder andere Variation bevorzugen kann.
 
G

Gast2

Gast
Übrigens durch solche Gedankengänge wer wen kennen und wer mit wem über was kommunizieren soll sind reichlich Variationen bezgl. MVC entstanden und irgendwie gibt es immer Anwendungen in denen man die eine oder andere Variation bevorzugen kann.

Stimmt, jedoch sollte in jedem Fall die Business Logik == Model nichts von der GUI wissen! Die GUI kennt ja zumindest den Controller bzw. direkt das Model. Sei es als INterface.

Nutzt man als Controller z.B. ein Binding Framework muss ja irgendwer binden. Macht das keine eigene Klasse die sowohl View als auch Model kennt tuts meistens die GUI selbst.

In jedem Fall kennt dann das Model aber die GUI und den Controller (in dem Fall das Framework) nicht.

Somit ist die Geschäftslogik vollständig von der GUI getrennt, nur umgekehrt muss das nicht gelten. Ist aber imho auch nur in der einen Richtung so wichtig. Die GUI muss sich ja ohnehin an den Inhalten der Model orientieren.
 

Nachtfalke

Aktives Mitglied
Da der Thread nun ziemlich weit von der ursprüngliche Frage in die Programmierphilosophie weggedriftet ist, kann er von mir aus geschlossen werden. Die Vorschläge, die bezüglich des ursprünglichen Problems gefallen sind, sind alle interessant, würden in meinem Fall aber ein Redesign der Anwendung erfordern. Dafür ist mir der Aufwand zu hoch. Ich war davon ausgegangen, daß ich die angezeigten Objekte per Serialisierung relativ aufwandsarm speichern und wiederherstellen könnte. Anscheinend geht das nicht.
 
G

Gast2

Gast
[OT]
Da der Thread nun ziemlich weit von der ursprüngliche Frage in die Programmierphilosophie weggedriftet ist
Nur so am Rande, das ist keine Philosophie sondern Best Practise...
Das du nun nicht redesignen kannst/magst versteh ich schon. Das kommt nunmal vor.[/OT]
 

hdi

Top Contributor
@Hdi, deine JTable Klasse implementiert das TableModel interface oder wie?
Ja klar. Das TableModel bestimmt welche Daten wie in der Table landen. Voralleme ersteres ist ein Problem, wenn deine Core-Daten das Model selbst ist. Denn was ist wenn du du zB Dateneinträge mit jeweils 5 Attributen hast, diese Table jedoch nur 3 davon anzeigen soll? Ich meine nicht alle internen Daten landen immer in der View. Du kannst in getcolumnCount nicht einfach 3 sagen, wenn dein Business Model == das TableModel, denn damit sind die anderen beiden Attribute auch für alle anderen Stellen deines Programms verschwunden, denn bei dir läuft alles über dieses TableModel. Klar, du kannst ein weiteres TableModel implementieren dass über das erste mappt. Aber genau das mach ich ja, nur dass mein "erstes TalbeModel" halt kein TableModel ist, denn das stimmt nun mal aus Sicht anderer Bereiche in meiner Applikation nicht. Sorry ich hab keine Lust TableDateEvents zu basteln, mit rows und column und so nem Quatsch, wenn ich grad auf absoluter low-level Ebene meine Daten von der Festplatte einlese. Da ruf ich lieber eine einfach addData()-Methode auf meinem Business Model auf, und das weiß intern schon selbst wie es die Daten anordnet.

Und wieso sollte ich irgendwas umimplementieren müssen, nur weil der JTable weg ist kann mein Model immer noch Events werfen. Der JTable hört sie dann halt nicht mehr, die list aber sehr wohl.
Klar, aber wie sinnvoll ist es, irgendwelche TableDateEvents und fire-Methoden mit Angabe von irgendwelchen Row/Column-Indices zu feuern wenn du weit und breit keine Tabelle hast? Das Beispiel von André muss ich zugeben ist ja echt einigermaßen sinnvoll, aber sehr oft kann/will man sich im internen Aufbau der Daten auch nicht unbedingt auf eine tabellarische Anordnung festlegen. Und wie gesagt das heißt noch immer nicht dass man dieses Model überhaupt für ne JTable verwenden kann, wenn die Table nicht alle Infos aus dem Model anzeigen soll.

Sobald die View irgendeinen Typen aus der Domäne kennt und auch noch "manipulative"-Methoden darauf aufruft sind die nicht mehr unabhängig.
Ok, das war dumm gesagt, du hast natürlich Recht. Komplett unabhängig kann View und Model ja nie sein, sonst gäb's keine Kommunikation. Aber die Wahrscheinlichkeit dass sich an der Struktur des Business Models was ändert ist finde ich geringer als die dass ich was an den Views ändern muss. An irgendeiner Stelle musst du immer Anpassungen vornehmen, das Business Model sollte natürlich gut überlegt sein, du kannst ja auch nochmal ein Interface für die manipulativen Methoden drüberklatschen.

Somit ist die Geschäftslogik vollständig von der GUI getrennt, nur umgekehrt muss das nicht gelten. Ist aber imho auch nur in der einen Richtung so wichtig.
Genau, das sehe ich auch so.
 
Zuletzt bearbeitet:

bERt0r

Top Contributor
Ich bin ja ganz bei dir, dass das Business Model von der GUI getrennt sein sollte, aber das trifft nunmal nur zu, wenn du überhaupt eines brauchst. Dein Businessmodel ist in Wirklichkeit nichts anderes als ein TableModel marke Eigenbau, bei dem du halt alles selber spezifizierst. Weil für jede View die du hinzufügst, musst du ja eine eigene View Komponente schreiben, die dann dein Model-Interface implementiert.
Man kann auch in einem Tablemodel die set und get-Methoden überschreiben, und die eigentliche Datenhaltung auslagern, z.B an einen DB-Manager.
Mir scheint es geht hier einfach um den Unterschied: Wiederverwendbarkeit in anderen Anwendungen vs Anpassung der Anwendung an andere Anforderungen.
 

hdi

Top Contributor
Verstehe ich alles. Ich finde nur wenn du ein TableModel nimmst und dann anfängst alles so umzuleiten und zu overriden dass es am Ende eigentlich gar keins mehr ist, dann kannst du dir ja gleich was ganz eigenes schreiben. Und egal wie du es implementierst, der Name "TableModel" bleibt, was an sich schon eine implizite Aussage hat wie ich finde, und die sollte auch zutreffen. Ich meine, du erbst ja auch nicht von ArrayList und machst daraus ein Set, oder?

Aber ich glaub wir können das hier langsam zu Grabe tragen. Ich hab inzwischen verstanden was du bzw André meinen, und ich kann das in Teilen nachvollziehen. Ich persönlich versuche mir einfach aus Prinzip an gewisse Design-Regeln zu halten, auch wenn das vllt in manchen Fällen Overkill ist, was ich ja durchaus zugebe. Ist mir aber einfach lieber.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
V mehrere bilder als eines abspeichern AWT, Swing, JavaFX & SWT 2
F RTF eines JEditorPanes abspeichern AWT, Swing, JavaFX & SWT 9
L Swing Files abspeichern mit Save as Dialog Fenster AWT, Swing, JavaFX & SWT 5
E AWT Bilder als "Array" abspeichern. AWT, Swing, JavaFX & SWT 4
S Projekt: Meisterschaft - Abspeichern bereits gemachter Schritte AWT, Swing, JavaFX & SWT 2
Y JavaFX Bild speichern und Pfad dazu abspeichern AWT, Swing, JavaFX & SWT 2
P BufferedImage schlechte Qualität beim Abspeichern AWT, Swing, JavaFX & SWT 9
P Komische Zeichen beim Abspeichern von TextFelder AWT, Swing, JavaFX & SWT 2
S Schwarzes Bild beim Abspeichern von JPanel AWT, Swing, JavaFX & SWT 12
S JTree Elemente nach BaumLevel abspeichern AWT, Swing, JavaFX & SWT 2
J Swing Problem - Abspeichern JSplitPane Position AWT, Swing, JavaFX & SWT 5
S Abspeichern aus einem ImageIcon ins korrekte Format AWT, Swing, JavaFX & SWT 2
Y AWT Maus Koordinaten abspeichern in eine Textfile AWT, Swing, JavaFX & SWT 3
H Image abspeichern AWT, Swing, JavaFX & SWT 4
N Frame bzw Grafiks als JPEG abspeichern AWT, Swing, JavaFX & SWT 4
X Swing Inhalt einer JEditorPane in Datei abspeichern AWT, Swing, JavaFX & SWT 5
R Wie kann man beim JTree die UserObjects mit abspeichern ? AWT, Swing, JavaFX & SWT 3
R JPanel mit Bildern als jpg abspeichern AWT, Swing, JavaFX & SWT 9
H Bild abspeichern AWT, Swing, JavaFX & SWT 7
G JLabel als JPG abspeichern AWT, Swing, JavaFX & SWT 9
H Selektionen in einem JTree abspeichern (Navigationshilfe) AWT, Swing, JavaFX & SWT 4
R Tree-Struktur in einer DB abspeichern AWT, Swing, JavaFX & SWT 15
redztripe Graphics2D rotieren und rotiertes Bild abspeichern AWT, Swing, JavaFX & SWT 2
O Swing Icon verschwindet beim Verschieben eines JLabels AWT, Swing, JavaFX & SWT 8
jojoge wie kann ich in eine Benennung eines JButtons eine Variable einbauen? AWT, Swing, JavaFX & SWT 6
L paintComponent in Panel eines Borderlayouts hinzufügen AWT, Swing, JavaFX & SWT 3
I Einbindung eines jpg/png/icons in eine GUI AWT, Swing, JavaFX & SWT 1
Splayfer Umrandung eines AttributedStrings AWT, Swing, JavaFX & SWT 2
Guybrush Threepwood Einfachste Möglichkeit zum Abspielen eines Videos in Swing AWT, Swing, JavaFX & SWT 4
Jose05 NullPointerException bei Beschreiben eines Labels aus einem Array AWT, Swing, JavaFX & SWT 12
Jose05 zugreifen auf ein Objekt eines GridPanes AWT, Swing, JavaFX & SWT 0
melaniemueller Verschiebung eines Fensters über Button AWT, Swing, JavaFX & SWT 27
news2swen automatisches erstellen eines Languagefiles AWT, Swing, JavaFX & SWT 1
B Stylen eines JTextPane funktioniert nicht AWT, Swing, JavaFX & SWT 1
MiMa Schliessen eines FXML Fensters? AWT, Swing, JavaFX & SWT 10
B JavaFX Farbe eines Quadrates in einer separaten Klasse ändern AWT, Swing, JavaFX & SWT 4
L AWT Ändern der Farbe eines BufferedImage mit Farbähnlichkeit AWT, Swing, JavaFX & SWT 5
B veränderte Größe eines Panels im Vorhinein wissen? AWT, Swing, JavaFX & SWT 1
L Komponenten eines Panels werden erst nach Klick darauf angezeigt AWT, Swing, JavaFX & SWT 13
L JavaFX Validierung eines Spinner AWT, Swing, JavaFX & SWT 1
M Builden eines lauffähigen JAR Files AWT, Swing, JavaFX & SWT 3
K Swing Text eines Lables in einer Methode ändern AWT, Swing, JavaFX & SWT 13
M JavaFX rotieren eines Kreises mit konstanter Geschwindigkeit AWT, Swing, JavaFX & SWT 1
K JavaFX Allgemeine Fragen zu dem Aufbau eines Programms hinsichtlich der Klassen AWT, Swing, JavaFX & SWT 1
M JavaFX Auf ein UI Elemement eines anderen Controllers zugreifen AWT, Swing, JavaFX & SWT 0
P Bewegung eines Balkens in eineum JPanel welches als Spielfeld fungiert AWT, Swing, JavaFX & SWT 2
Tronert JavaFX Linienstärke eines Separators ändern? AWT, Swing, JavaFX & SWT 3
N JavaFX Group: Gezieltes entfernen eines Objects (Rectangle) AWT, Swing, JavaFX & SWT 0
J Ziehen eines Buttons im JPanel AWT, Swing, JavaFX & SWT 2
J Drag and Drop eines Buttons AWT, Swing, JavaFX & SWT 0
M NullPointerException bei Übergabe eines RadioButtons AWT, Swing, JavaFX & SWT 11
DaCrazyJavaExpert Swing Extern den Text eines nicht fetsgelegten Buttons bekommen. AWT, Swing, JavaFX & SWT 12
J JavaFX Rectangle innerhalb eines Rectangle oder Panes positionieren? AWT, Swing, JavaFX & SWT 1
C JavaFX Inhalt eines SplitPane's durch Menü-Auswahl ändern? AWT, Swing, JavaFX & SWT 13
J linken Bildausschnitt eines BufferedImage abschneiden AWT, Swing, JavaFX & SWT 4
J bestimmten Bereich eines JPanels drucken AWT, Swing, JavaFX & SWT 2
D LookAndFeel Überschreiben eines UIDelegate AWT, Swing, JavaFX & SWT 0
T Java FX Probleme beim befüllen eines Tableviews AWT, Swing, JavaFX & SWT 5
C Zeichen eines 6 -Eckes AWT, Swing, JavaFX & SWT 1
U JavaFX Wechsel der Scene nach betätigen eines Button AWT, Swing, JavaFX & SWT 2
F Screenshot eines JPanel AWT, Swing, JavaFX & SWT 3
S JavaFX TreeItem: Icon am Ende eines Eintrags anhängen AWT, Swing, JavaFX & SWT 2
D TAB Taste innerhalb eines JSpinner AWT, Swing, JavaFX & SWT 2
R Update eines Labels bei Methodenaufruf einer anderen Klasse AWT, Swing, JavaFX & SWT 9
F Swing Spaltenbreite einer Column eines JTable auslesen AWT, Swing, JavaFX & SWT 5
D Swing Komponenten Anordnung eines Panels in Verbindung eines weiteren Panels AWT, Swing, JavaFX & SWT 9
F Swing Rotation eines Bildes mit beliebigen Koordinaten um den Mittelpunkt AWT, Swing, JavaFX & SWT 3
Cromewell JavaFX Nur bestimmten Teil eines Canvas rendern und anzeigen AWT, Swing, JavaFX & SWT 2
Z Swing Variable eines Objekt aus Hashmap in JList anzeigen AWT, Swing, JavaFX & SWT 1
D Frame beim starten eines anderen Frames schließen AWT, Swing, JavaFX & SWT 2
R Hilfe beim ändern des Hintergrundes eines JFrames AWT, Swing, JavaFX & SWT 9
T Durch klicken eines Buttons Klasse wechseln AWT, Swing, JavaFX & SWT 2
E Swing Copy und Paste eines einzelnen Knoten aus einem JTree AWT, Swing, JavaFX & SWT 1
J Swing Vertikales Zeichnen eines Strings mit Java2D AWT, Swing, JavaFX & SWT 1
7 JavaFX Problem beim Zeichnen eines Dreiecks in einem GUI AWT, Swing, JavaFX & SWT 6
V JavaFX Teile eines Images Transparent machen AWT, Swing, JavaFX & SWT 4
I JavaFX Langes drücken eines Buttons AWT, Swing, JavaFX & SWT 4
B Swing Wie Witdh und Height eines GuiElements bekommen AWT, Swing, JavaFX & SWT 5
L Swing Teile eines JPanel in eigene Klasse auslagern AWT, Swing, JavaFX & SWT 3
M Swing JPanel innerhalb eines Frames verschieben AWT, Swing, JavaFX & SWT 3
J JavaFX Zugriff auf FXML-Variablen eines anderen Controllers AWT, Swing, JavaFX & SWT 2
K Swing Inhalt eines JPanels lesen AWT, Swing, JavaFX & SWT 3
T Nur bestimmte Bereiche eines Fotos bearbeiten AWT, Swing, JavaFX & SWT 0
J Swing Erstellung eines User Interface AWT, Swing, JavaFX & SWT 2
S JavaFX Teil eines Bildes ausschneiden / als neues Bild nutzen AWT, Swing, JavaFX & SWT 8
R Swing Bewegung eines Graphics Objektes innerhalb eines JPanels funktioniert nicht richtig AWT, Swing, JavaFX & SWT 2
O Swing Aufbau eines JFrames AWT, Swing, JavaFX & SWT 2
A JavaFX Hilfe beim Design eines Quiz AWT, Swing, JavaFX & SWT 2
F Instanzierung einer inneren Klasse in Klasse eines anderen Packets AWT, Swing, JavaFX & SWT 3
A befüllen eines JTables mittels Methode AWT, Swing, JavaFX & SWT 10
javampir Swing Wanderung eines JFrames AWT, Swing, JavaFX & SWT 7
J Anfänger GUI Problem bei der Ausführung eines sehr einfachen Programms AWT, Swing, JavaFX & SWT 2
G Swing ComboBox: Auswahl eines Items der Liste durch Eingabe eines Buchstabens AWT, Swing, JavaFX & SWT 3
S Swing Nur den sichtbaren Bereich eines TextPane mit Inhalt darstellem AWT, Swing, JavaFX & SWT 0
I Erstellung eines kleinen Programmes AWT, Swing, JavaFX & SWT 8
H Position eines JLabel in einem JPanel AWT, Swing, JavaFX & SWT 2
J 2D-Grafik Windows Blue-Screen nach anzeigen eines Bildes in Java AWT, Swing, JavaFX & SWT 10
T Swing Einzelne Teile eines Textes färben? AWT, Swing, JavaFX & SWT 10
H Swing Probleme beim erstellen eines neuen Objektes durch einen Button AWT, Swing, JavaFX & SWT 10
HaukeG JavaFX JavaFX Resize und DragAndDrop eines Pane AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben