Erste Schritte Layout an Bildschirmauflösung anpassen

Hallo Zusammen,

ich bin nun aus der "HTML&PHP Welt" auf Java umgestiegen, da ich momentan keine Web-Anwendungen mehr erstelle und mich nun mehr in die eigentlichen Sprachen einarbeiten möchte, und keine Scriptsprachen mehr.

Nun meine Frage. Ich möchte Testweise ein kleines Java-Programm erstellen. Soweit kein Problem, klappt alles wunderbar.

Ich habe meine JFrames über WindowsBuilder (Absolute Layout) aufgebaut, um die perfekte Position der einzelnen Objekte zu platzieren. Nun mein Problem: Ich besitze einen 24 Zoll 1920x1080 Bildschirm. Auf meinem kleineren Bildschirm, z.B. 800x600 wird das Fenster ja logischerweise um einiges kleiner. Ist es nun möglich mit dem AbsoluteLayout die Objekte ebenfalls dem Bildschirm anzupassen? Momentan verschwinden diese ja einfach.

Das Problem ist, dass ich kein GridBagLayout oder Sonstiges verwenden möchte, da ich dann eingeschränkt bin an den Positionen der Objekte.


Vielen Dank im Vorraus.
 
Es gibt auch gute LayoutManager, neben einfachen wie FlowLayout oder GridBagLayout. Einer, den ich eigentlich immer benutze, ist JGoodies FormLayout. Der ist im Eclipse WindowBuilder auch bereits integriert. Durch Constraints kannst du eigentlich alle nur erdenklichen Layouts erstellen.
 
Okay, ja der ist bei mir im WindowsBuilder auch, wobei bei manchen Dingern dann komplett Eclipse abstürzt. Der ist bei mir an unterster Stelle, da lässt mich Eclipse nicht mehr an alle Punkte dran. Aber dann schau ich mir den morgen mal an. Bin ich da genauso flexibel wie beim Absolute Layout?
 
Ich würde das AbsoluteLayout als absolut unflexibel einsortieren, da eben die Größe und Ausrichtungen der Elemente starr ist und sich nicht flexibel an der Größe des Contains/Fensters ausrichten. Das AbsoluteLayout ist auch nicht wirklich ein LayoutManager, da es ja eben nichts layoutet... du setzt einfach hart die Positionen und Größen der Elemente an den Elementen selbst und fertig.
 
Naja, ich verstehe was du meinst. Ich meinte mit flexibel eher, dass ich mit dem JGoodies FormLayout blöd gesagt auch alles da hin schieben kann wo ich will, was sich dann allerdings an meinem Fenster anpasst.
 
Naja, wie gesagt, du musst dir erstmal ein logisches Layout überlegen. Also: Ein Button z.B. soll immer einen 6 Pixel Margin zum unteren Rand des Fensters haben. Oder diese drei Labels sollen immer linksbündig sein und die drei Texteingabefelder rechts daneben sollen immer 10 Pixel von dem rechten Bund/Rand der Labels entfernt sein. Und solche Sachen halt. Du definierst über Constraints dein Layout, und musst das "Layout" nicht in deinem Kopf ausrechnen und dann auf explizite Pixel-Positionen übersetzen und alles solange minutiös verschieben, bis es "passt", wie du es mit dem AbsoluteLayout (sprich: keinem LayoutManager) machen würdest.
Das richtige logische Layout zu finden, welches sich durchaus aus verschiedenen Container-Komponenten mit ihrerseits unterschiedlichen LayoutManagern zusammensetzen kann, ist aber erstmal nicht leicht.
 
Naja, verstehe. Ich bin momentan dabei, dass ich ein 2D-Farm-Spiel aufbauen möchte. Das Hintergrundbild soll dann als "Funktion" dienen - sprich wenn man mit der Maus über bestimmte Bereiche geht, sind diese anklickbar. Und dazu müsste ich eben auch festlegen, an welchen Positionen man bspw. ein Feld bauen kann oder wo sich der Button für den Shop befindet. Mal so ganz grob erklärt ^^
 
Ach sooo... du willst damit die Darstellung eines Spiels steuern. Okay, dafür halte ich Swing/AWT Oberflächenelemente und LayoutManager generell für ungeeignet. Da solltest du lieber einfach die paint() Methode überschreiben, und deine Sprites oder was du da hast, selber zeichnen und per MouseListener auf Hover/Click prüfen.
 
Sprich einfach das Hintergrundbild repainten, und dann per Sprites die "Fixpunkte" festlegen, wann was passiert sobald die Maus drüber rennt?
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben