Komponenten übereinander

Meisenmann

Mitglied
hey,

ich habe ein ausklappbares menü erstellt. Dieses menü liegt, wenn es ausgeklappt ist, über dem hauptfenster.

Das habe ich mit einem null layout implementiert: ich positioniere die komponenten mit setbounds einfach übereinander.

Nun bin ich mir nicht sicher, ob ich das ohne bedenken so machen kann, bzw. ob es nicht eine bessere lösung dafür gibt?


besten dank & viele grüße,
meisenmann
 
Gehen: Ja. Flexibel: Nein!
Dafür gibt es nun mal Layouts.

Es wäre allerdings generell hilfreich, wenn wir wüssten, worüber du eigentlich sprichst... Swing? SWT? JavaFX?
 
danke für deine antwort.

Gehen: Ja. Flexibel: Nein!

die nicht vorhandene flexibilität des null layouts ist mir bekannt. da mein fester aber eine feste größe, festes betriebssystem und feste schriftarten verwendet, ist dies zu verkraften.

Es wäre allerdings generell hilfreich, wenn wir wüssten, worüber du eigentlich sprichst... Swing? SWT? JavaFX?
ich nutze erweiterte swing komponenten.

Dafür gibt es nun mal Layouts.

Welcher layoutmanager unterstützt denn mehrere ebenen und unterschiedliche größen der ebenen?


gruß,
meisenmann
 
Dein "fester" hat eine "feste größe"!? -> Kennst du so etwas wie Groß- und Kleinschreibung? Und ist es möglich das du etwas spezifischer bist? Es ist extrem schwer den Sinn deines Textes zu verstehen!
Ich gehe davon aus, du meinst eine "Workstation" oder einen Desktop-PC - ist das korrekt?

Wenn ja, schau dir vielleicht den Eintrag bei StackOverflow mal an - scheint dein Ding zu sein.
java - StackPanel in Swing - Stack Overflow

Ich versteh' nur nicht, warum du diese Art von Funktionalität versuchst selbst zu implementieren und warum mit Swing (ich wiederhole es wie so oft schon hier: ES IST TOT!) und warum mit einem statischen Layout - ich sehe den Sinn von alles drei Punkten gerade nicht wo es doch solche Funktionen bereits über ein Kontextmenü o.ä. gibt.

Sorry für meine Direktheit, aber ich bin ob deiner bisherigen Beschreibung insgesamt eher verwirrt...
 
nochmals Danke für Deine Antwort!

Kennst du so etwas wie Groß- und Kleinschreibung?

Ja, kenne ich. Nutze es nur ungern 😀

Ich gehe davon aus, du meinst eine "Workstation" oder einen Desktop-PC - ist das korrekt?

Es handelt sich um einen PC mit Windows (XP)

Ich versteh' nur nicht, warum du diese Art von Funktionalität versuchst selbst zu implementieren und warum mit Swing (ich wiederhole es wie so oft schon hier: ES IST TOT!)

Eine bereits bestehende GUI soll um eine Funktionalität erweitert werden. Diese GUI basiert auf swing.
Nur so eine Frage nebenbei. Durch was wird swing ersetzt, wenn es tot ist?

ich sehe den Sinn von alles drei Punkten gerade nicht wo es doch solche Funktionen bereits über ein Kontextmenü o.ä. gibt.

Was ich machen möchte ist ein Menü so wie es z. B. vom neuen iOS angeboten wird

510_293_6983ad39ad469694f76485bb2f99fdb0_1379074414.jpg.jpg


Kann ich auf ein Kontextmenü auch ein JPanel legen?


Gruß,
Meisenmann
 
Der Nachfolger heisst JavaFX und kommt auch noch mit so etwas wie "flutschigen" Standart-Animationen daher. Wäre also dein Ding. Welches Java verwendest du? Java7 oder 8?
In 7 kannst du in JavaFX-Komponenten in eine bestehende Swing-Anwendung einbetten, in 8 geht es in beide Richtungen.

Ach du meinst das tolle innovative Teil in iOS, das sie von Android abgekupfert haben 🙂 Dort gibt es das seit... Keine Ahnung... ewig... ;-)

Unabhängig aber davon würde ich dir folgendes vorschlagen: Schreibe das Hauptprogramm mit einem ordentlichen Layout, dann bette dieses Layout auf irgendsoein StackPanel (oder was auch immer, hier kenne ich mich nicht genug mit Swing aus), dann lege ein weiteres Panel an, was dann das "Menü" wird - und auch hier verwende ein ordentliches Layout! Das ganze legst du dann "oben auf den Stapel" deines StackPanels. In JavaFX würde man nun TranslateY machen (wenn man es nach unten oder oben schieben will). Ich denke das so etwas auch in Swing gehen könnte! Wichtig ist nur: In JavaFX musst du darauf achten, dass das untere Panel - die Hauptseite - dann auch alle Maus-Ereignisse bekommt...

Ist das Vorgehen klar? Ich kann dir nur ein Beispiel für JavaFX geben, aber wenn du eine bestehende Swing-Anwendung erweitern möchtest, weiß ich nicht, was es dir bringt...
 
Vielen Dank für die ausführliche und verständliche Antwort :toll:

Eine Sache hab ich aber noch nicht verstanden: welchen Vorteil bring mir denn ein Layout-Manager in diesem Fall? Ich meine bei variabler Fenstergröße und unterschiedlichen Betriebssystemen bzw. L&F ist das ein riesen Vorteil, aber bei mir?

Gruß,
Meisenmann
 
Eine Korrektur: Ich habe im Text etwas falsch dargestellt. Du kannst in Java 7 folgendes machen: JavaFX in Swing einbetten - nicht Swing in JavaFX.

Lass mich die Antwort auf deine Frage mit einigen Gegenfragen formulieren: Hast du die Anwendung immer in Vollbild (o.ä)? Hast du für immer und ewig den selben Monitor? Verwendest du dynamische Text in deiner UI?

Layouts helfen dir speziell dann enorm, wenn du mit teilweise dynamischen Komponenten arbeitest. Ich persönlich empfinde NullLayout schlicht und einfach als schlechten Stil. Echte Männer schlagen mit jedweden Layout-Problem herum - und gewinnen 🙂
 

Neue Themen


Zurück
Oben