Swing "Window Manager" - Gedankenprobleme

Bizarrus

Bekanntes Mitglied
Halli hallo hallöle :D

Ich bin derzeit eine Client/Server Anwendung am basteln und habe da eine Idee.
Der Titel selber sagt schon ein Teil dazu.

Es geht nicht um einen eigendlichen "Window Manager", wie man ihn sich vorstellen kann, ich habe da eher eine eigene Vorstellung:

Serverseitig können beliebige Fenster "versendet" werden, die zuvor über Methoden "zusammengebastelt" wurden. Der Client intepretiert dies, "parsed" den Mist und gibt dann das Fenster aus. Nein, nicht im densinne eines Object-Streams.

Ich gebe nun mal ein Beispiel:
Bei einer Authentifizierung wird ein "Popup" serverseitig aufbereitet und versendet, wenn das Passwort falsch eingegeben wurde:
Java:
client.send(WindowManager.popup("Falsches Passwort", String.format("_Falsches Passwort_ für %s eingegeben.", rs.getString("account_nickname"))));

Hier die dafür vorgesehene Methode:
Java:
public static String popup(String title, String text) {
	Window window = new Window("Problem", 400, 300);
	window.setType(2);
	window.setPosition("CENTER");
		
	TextPanel panel_text = new TextPanel(text);
	panel_text.setPosition("Center");
	window.addPanel(panel_text);
		
	Button button_close = new Button("OK");
	button_close.setCloseable(true);
	button_close.setPosition("South");
	window.addPanel(button_close);
		
	return PacketCreator.window(window);
}

Serverseitig werden halt Klassen einzelner Komponenten bereitgestellt, die diverse Eigenschaften besitzen.

Der Client erhält folgendes Paket und bereitet durch die gegebenen Trennzeichen das Fenster auf:
Code:
[ >>> ] w\0WINDOW_TYPEÚ℁Ú2õWINDOW_TITLEÚℂÚProblemõWINDOW_SIZEÚÚ¿,õWINDOW_RESIZABLEÚ℄ÚFALSEõWINDOW_POSITIONÚℂÚCENTER¯_Falsches Passwort_ für Admin eingegeben.Ú倂Ú¬OKÚ倁Ú

Das ganze sieht dann später folgendermaßen aus:
unbenannt28sj6.png


Soweit so gut.
Generell setzt sich das Paket folgendermaßen zusammen:
w - Opcode (w = Window)
0x00 - NULL Byte Trennzeichen
[WINDOW PROPERTIES] - Beispielsweise Titel, Größe, etc..
0xAF - Trennzeichen, hier fangen alle auf dem Fenster dargestellten Komponenten an
[COMPONENTS] - Buttons, Panels & co...

Jetzt habe ich aber eine kleine Denkstütze Nötig.

Wie wäre es am sinnvollsten auch etwas komplexere Aufbauten zu implementieren/zu verschachteln?
Ein Beispiel: Mehrere Panels die ineinander verschachtelt sind mit unterschiedlichen LayoutManagern.

Grund hierfür ist, dass ich später nur noch Serverseitig Fenster "abändern" kann, ohne ständig den Clienten updaten zu müssen.
 
Zuletzt bearbeitet:

Bizarrus

Bekanntes Mitglied
Ich hab an XML auch bereits gedacht, genauso wie an JSON.
Ich persönlich finde es eher unpraktisch bzw. gegenüber der Netzwerkaktivitäten zu viel.

Jeder weiß ja wie ein XML Dokument aussehen könnte.
Es ist doch (je nachdem wieviele Nutzer nachher den Clienten nutzen) ein Enorm höherer Trafficverbrauch.

Kleines Beispiel:


XML
PHP:
<?xml ... Kein Plan ... ?>
<window>
	<settings>
		<!-- ... -->
	</setting>
	<components>
		<panel>
			<layout>BorderLayout</layout>
		</panel>
	</components>
</window>

JSON
PHP:
{
	"settings": {
		/* ... */
	},
	"components": {
		"panel": {
			"layout": "BorderLayout"
		}
	}
}

Meine Idee:
PHP:
w		// Window
0x00		// Settings Anfang
....		// ...
0xAF		// Komponenten Anfang
0x5002	// Panel
Layout:BorderLayout

Auch wenn jetzt XML bzw. JSON nicht unbedingt "valide" dargeboten wird, es dient nur als Beispiel.. Sind bei XML schon ziemlich mehr Zeichen/Zeilen notwendig als bei JSON oder meiner Idee.
 
Zuletzt bearbeitet:

Phash

Top Contributor
willst du die Daten per Rauchzeichen versenden?
XML Daten sind nicht dick... im KB Bereich brauchst du dir heute keine Gedanken mehr machen...
 

Bizarrus

Bekanntes Mitglied
Doch, im Mobilen bereich schon, da ich such eine iOS App als Client plane.
Gut, bei WiFi ist des ja in ordnung, bei einer Mobilen Datennutzung spielt dies aber schon eher eine Rolle.
 

Timothy Truckle

Top Contributor
Auch wenn jetzt XML bzw. JSON nicht unbedingt "valide" dargeboten wird, es dient nur als Beispiel.. Sind bei XML schon ziemlich mehr Zeichen/Zeilen notwendig als bei JSON oder meiner Idee.
Also solange deine Konfiguration kleiner als 10k bleibt braucht Du Dir um Netzwerkverkehr keine gedanken zu machen, weil in einem 100Mbit die IP-Packete mindestens so groß sein müssen (also mit Nullen aufgefüllt werden, wenn sie kleiner sind...).

Außerdem könnte man ja auch Attribute einsetzen, was die Anzahl der Zechen deutlich verringert.
Code:
<?xml ... Kein Plan ... ?>
<window posX="0" posY="0">
    <settings>
        <!-- ... -->
    </setting>
    <components>
        <panel layout=BorderLayout>
            <north>
              <label text="der Text"/>
            </north>           
        </panel>
    </components>
</window>
und die Zeilenumbrüche und Leerzeichen sind ja eh nicht wichtig, die kann man nachträglich reinformatieren lassen.

Und letztlich bist Du nun wirklich nicht der erste, der sich so ein Format ausdenkt. Die Frage, die sich mir stellt ist halt, wenn das so gut ist, warum wird dann so viel mit XML umgesetzt? Sind die Andern alle zu blöd für Deinen Ansatz?

bye
TT
 

Bizarrus

Bekanntes Mitglied
Naja, warum XML genutzt wird? Weil es halt vorhanden ist, neben bereits vorhandenen Parsern.

Ich brächte ja auch nur eine Denkstütze, wie ich die einzelnen Komponenten mit "Subkomponenten" bestücken kann, ohne dass gleich etwas schief läuft.
 

Timothy Truckle

Top Contributor
Ich brächte ja auch nur eine Denkstütze, wie ich die einzelnen Komponenten mit "Subkomponenten" bestücken kann, ohne dass gleich etwas schief läuft.
Es wird nicht gehen, ohne das Ende einer Komponente zu kennzeichen.

Andernfalls müsstets Du alle Kompnenten der ersten Ebene aufführen und erst anschließend die Komponenten der nächsten Ebene + Referenz, in welche übergeordnete Komponente sie gehören.

bye
TT
 

Bizarrus

Bekanntes Mitglied
Ja, das "ineinander verschachteln" wäre hier ja definitiv nicht sinnvoll, da der "parser" dann ja durcheinander kommt".

Gut, dann müsste ich rein Theoretisch erstmal alle Elemente Parsen und "Sammeln" Beispielsweise über einer Objektliste und dann erst zusammen stellen lassen.

Ah, gut ich hab schon einen guten Denkanstoß, du bist mein Held :applaus:
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R JFrame -- Variable Positionierung durch Window Manager? AWT, Swing, JavaFX & SWT 2
izoards Java FX Window Event SHOWING AWT, Swing, JavaFX & SWT 17
ruutaiokwu SWT "Google Window Builder" tut keine jar's ins Projekt rein bei SWT-Projekt AWT, Swing, JavaFX & SWT 22
L JavaFX AnchorPane an die Größe der Scene oder Window binden? AWT, Swing, JavaFX & SWT 3
A Objekt von einem Window erstellen? AWT, Swing, JavaFX & SWT 8
S Window Builder AWT, Swing, JavaFX & SWT 20
I Modal Window AWT, Swing, JavaFX & SWT 26
ralfb1105 JavaFX Wie Text Label in neuem Window von Main Stage setzen? AWT, Swing, JavaFX & SWT 6
C JavaFX Window-Position AWT, Swing, JavaFX & SWT 3
Neumi5694 java.awt.Window nach javafx.stage.Window AWT, Swing, JavaFX & SWT 1
T Custom Window ohne Swing / AWT / FX..?! AWT, Swing, JavaFX & SWT 1
Ghostman1711 GUI Java von Klasse mit Application Windows anderes Application Window aufrufen AWT, Swing, JavaFX & SWT 6
Z Window Builder - Labels mit setText befüllen AWT, Swing, JavaFX & SWT 11
B JavaFX Werte aus eingefügtem Window lesen AWT, Swing, JavaFX & SWT 0
EisKaffee Swing Window Builder installieren AWT, Swing, JavaFX & SWT 1
D SWT Window passt Größe nicht an AWT, Swing, JavaFX & SWT 4
H Drag component out of window AWT, Swing, JavaFX & SWT 1
G Window aus anderer Klasse aufrufen AWT, Swing, JavaFX & SWT 4
J Swing Window-Builder-Projekt richtig übertragen AWT, Swing, JavaFX & SWT 2
H Swing Google Window-Builder AWT, Swing, JavaFX & SWT 4
S Flackerndes Window beim DnD AWT, Swing, JavaFX & SWT 37
D SWT CheckBox auslesen (Window Builder Pro) AWT, Swing, JavaFX & SWT 2
frankred Swing Canvas nach "Window-resize" neu Zeichnen lassen wegen Anzeigefehler AWT, Swing, JavaFX & SWT 4
B Swing Window nur bedingt im Vordergrund AWT, Swing, JavaFX & SWT 5
N Window transparent, Komponenten nicht transparent AWT, Swing, JavaFX & SWT 11
R Swing Sequenz aus farbigen Quadraten in Window anzeigen AWT, Swing, JavaFX & SWT 11
J Fehlermeldung adding a window to a container AWT, Swing, JavaFX & SWT 9
L AWT Window, Dialog und verschiedene Betriebssysteme AWT, Swing, JavaFX & SWT 2
3 Eigenes Frame/Window programmieren AWT, Swing, JavaFX & SWT 2
T SWT Window Builder Pro File Dialog anzeigen AWT, Swing, JavaFX & SWT 10
J Swing kann window nicht übergeben AWT, Swing, JavaFX & SWT 14
L Fenster inaktiv setzen / deaktivieren (unable to close window) AWT, Swing, JavaFX & SWT 16
data89 Code-completion-window erzeugen - wie? AWT, Swing, JavaFX & SWT 2
Spin Window Event Beispiel AWT, Swing, JavaFX & SWT 6
H Eclipse View / Window Layout AWT, Swing, JavaFX & SWT 3
T Exception: Adding a window to a container AWT, Swing, JavaFX & SWT 14
M "Window"-Bibilotheck AWT, Swing, JavaFX & SWT 4
I JFrame-Anmerkung "Java Applet Window" entfernen AWT, Swing, JavaFX & SWT 4
T Synchrones Window-verschieben AWT, Swing, JavaFX & SWT 4
K Prompt window in Java? AWT, Swing, JavaFX & SWT 3
S Window über beide Bildschirme maximieren AWT, Swing, JavaFX & SWT 8
F Window#setAlwaysOnTop und Java 1.4.x AWT, Swing, JavaFX & SWT 5
M createImage in Window-Unterklasse AWT, Swing, JavaFX & SWT 4
M Window unterteilen AWT, Swing, JavaFX & SWT 9
G Window in Taskleiste AWT, Swing, JavaFX & SWT 13
G Window wird angezeigt, nur der Inhalt nicht AWT, Swing, JavaFX & SWT 5
S Window Listener, Exit, bin am Verzweifeln AWT, Swing, JavaFX & SWT 24
U Reaktion auf closing window AWT, Swing, JavaFX & SWT 7
G Listener fuer Window Close AWT, Swing, JavaFX & SWT 2
M not serializable: sun.awt.window.WImage AWT, Swing, JavaFX & SWT 8
N frage ueber D&D von window wie in einige IDE AWT, Swing, JavaFX & SWT 7
P Transparentes Window/JFrame (mit SkinLF?) AWT, Swing, JavaFX & SWT 10
R "Statusbar" - JFrame mit 'Java Applet Window' AWT, Swing, JavaFX & SWT 18
S Performance-Problem: JTextArea als Logging-Window AWT, Swing, JavaFX & SWT 8
J Window Listener funzt nicht richtig AWT, Swing, JavaFX & SWT 5
R Die (J)Frame window listener AWT, Swing, JavaFX & SWT 7
D [Swing] Anordnung von Komponenten mit GridLayout Manager AWT, Swing, JavaFX & SWT 13
R Layout Manager null und Component wird nicht hinzugefügt AWT, Swing, JavaFX & SWT 3
A Layout-Manager, JScrollPane, ... Chaos AWT, Swing, JavaFX & SWT 5
D LayoutManager GUI skalieren und deren Komponenten mit Grid(Bag)Layout-Manager. AWT, Swing, JavaFX & SWT 5
M Passender Layout-Manager AWT, Swing, JavaFX & SWT 3
R Welchen Layout Manager/ Wie strukturieren? AWT, Swing, JavaFX & SWT 14
P Swing welchen Layout Manager verwenden AWT, Swing, JavaFX & SWT 9
B Anderen Layout-Manager verwenden AWT, Swing, JavaFX & SWT 17
Furtano AWT mehrere Bilder in einen Frame zeichnen + Layout Manager AWT, Swing, JavaFX & SWT 10
J LayoutManager Welchen Layout/Design-Manager? AWT, Swing, JavaFX & SWT 4
A Problem mit Layout-Manager AWT, Swing, JavaFX & SWT 11
B Probleme mit Layout Manager (BoxLayout) AWT, Swing, JavaFX & SWT 4
S SWT Composite mit Layout Manager geht nicht AWT, Swing, JavaFX & SWT 4
A Welcher Layout Manager ist hier richtig? AWT, Swing, JavaFX & SWT 3
Luk10 Layout-Manager AWT, Swing, JavaFX & SWT 3
S LayoutManager Welcher Manager AWT, Swing, JavaFX & SWT 2
P Layout Manager oder manuell?? AWT, Swing, JavaFX & SWT 7
G Layout Manager AWT, Swing, JavaFX & SWT 5
Lazybone der Richtige Layout Manager AWT, Swing, JavaFX & SWT 2
M Welcher Layout Manager? AWT, Swing, JavaFX & SWT 5
I SWT Layout Manager und weiteres. AWT, Swing, JavaFX & SWT 6
G Undo Manager AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben