Bild als Hintergrund für die GUI

Akeshihiro

Erfahrenes Mitglied
Tatsache, das sieht wirklich komisch aus. Aber du fügst deinen "Hintergrund" auch als Label ein, wahrscheinlich wird versucht diese auch ganz normal darzustellen. Ich würde den Hintergrund lieber wirklich im Hintergrund zeichnen (so wie ich das gemacht hab) anstatt es als Komponente einzufügen.
 

merTii

Mitglied
Okay ich versuchs so zu machen, wie du es auch gemacht hast...

Kannst du mir sagen, mit welchem Tool du deine GUI erstellst...ich denk, du tippst ja wohl nicht alles einzelne.
 

Akeshihiro

Erfahrenes Mitglied
Ich hab ne Möglichkeit gefunden, dein Problem zu lösen, aber meiner Meinung nach is das auch nich so der Hit ... Man kann nämlich den Z-Index bestimmen. Oder anders gesagt, man kann die Reihenfolge der Komponenten bestimmen, quasi als ob sie auf verschiedenen Ebenen liegen würden (so wie in Photoshop, falls das fürs Verständnis besser ist).
Dazu änderst du in der Methode getJContentPane() einfach etwas ab. Und zwar
Java:
jContentPane.add(btBild, null);
jContentPane.add(getBtAnmelden(), null);
jContentPane.add(getBtRegistrieren(), null);
gegen
Java:
jContentPane.add(btBild, 0);
jContentPane.add(getBtAnmelden(), 0);
jContentPane.add(getBtRegistrieren(), 0);
Also einfach nur null gegen 0 ersetzen. Hier würde es schon reichen das nur beim getBtRegistrieren() zu machen, aber sicherheitshalber hab ich das bei den anderen Komponenten hinzugefügt.

Also wenn ich mir den Code anschaue, dann nutzt die wohl Eclipse. Das nutze ich auch, aber ohne irgendwelche visuellen Editoren, wie z.B. VE. Am Anfang hab ich das noch gemacht, bis mir das Teil auf die Nerven ging, weil der Code immer aussah wie sonst was und seit dem tippe ich das alles von Hand. Son VE ist zwar ganz nett, vor allem wenn man was ändern will, aber man braucht ihn nicht. Abgesehn davon ordnest du damit ja nur paar Komponenten an, die Logik musst du ja dennoch selbst machen und dazu gehört auch das Zeichnen.
 

merTii

Mitglied
Okay super es funktioniert...danke! Ich find das als JLabel einen tick besser, weil die Qualität einfach besser ist.

Jap benutze auch Eclipse, aber hab mir auch vorgenommen, viele Teile per Hand abzutippen, weil es ja mal vorkommen kann, dass kein Tool vorhanden ist, was mir alles vorsagt^^
 

Akeshihiro

Erfahrenes Mitglied
Das mit der Qualität hat nichts mit dem Label zu tun, sondern liegt an der Darstellung des Bildes. Ich hab das so gemacht, dass es immer vollständig zu sehen ist, egal wie groß das Fenster gerade ist. Das heißt, es wird auch verzerrt, wenn sich eine Achse verändert. Man kann es auch in der richtigen Größe zeichnen lassen, kommt immer drauf an. Ich hatte beim Test ein Bild, bei dem es eh egal war, weil es ein Verlauf war, zwar mit angebrachter Größe, aber da merkt man eh nix, wenn sich die Größe ändert. Bei einem konkreten Bild sieht es anders aus. Dann würde ich aber ohnehin verhindern, dass man die Fenstergröße ändern kann, da sonst freie Flächen auftauchen. Andererseits muss das Bild aber auch die bestimmte Größe haben, ist es zu klein, hat man freie Flächen, ist es zu groß sieht man nur einen Ausschnitt.
 

ekisback67

Grünschnabel
Hey :)

Ist schon etwas länger her, aber ich hoffe ihr könnt mir trotzdem weiterhelfen :D

Und zwar möchte ich meinem JFrame ein Hintergrundbild verpassen, auf diesem dann ein Button platzfinden soll.

Mit dem Code von Akeshihiro habe ich das soweit schon geschafft, nur habe ich das Problem, dass ich zwar die Größe des Buttons ändern kann, aber nicht dessen Position...

Außerdem lässt dich die Größe des Buttons nur mit dem Befehl setPreferredSize(new Dimension(x,y))) ändern, nicht aber mit setSize().

Habt ihr eine Idee wieso? :/