• Liebe User, bitte beachtet folgendes Thema: Was im Forum passiert, bleibt im Forum! Danke!
  • Hallo Gemeinde! Das Problem leidet zurzeit unter technischen Problemen. Wir sind da dran, aber das Zeitkontingent ist begrenzt. In der Zwischenzeit dürfte den meisten aufgefallen sein, dass das Erstellen von Posts funktioniert, auch wenn das Forum erstmal eine Fehlermeldung wirft. Um unseren Löschaufwand zu minimieren, bitten wir euch darum, nicht mehrmals auf 'Post Reply' zu klicken, da das zur Mehrfachposts führt. Grußworte.

Frage an die Java-Programmierer: Zeilenumbruch im JOptionPane-Dialog

Mitglied seit
04.08.2002
Beiträge
1.869
Reaktionen
0
Nabend.

Geht um folgendes: Ich nutze in einer Applikation die Methode JOptionPane.showConfirmDialog() um eine MessageBox anzeigen zu lassen.

Nun habe ich folgendes Problem: Es soll ein recht langer Text dargestellt werden. Anstatt diesen automatisch umzubrechen findet es Java allerdings besonders toll, die MessageBox einfach krass in die Breite zu ziehen, so dass beide Enden des Fensters sogar über die Bildschirmränder hinausragen.

Gibt es eine Möglichkeit, den angezeigten Dialog korrekt darzustellen, bzw. eine Art automatischen Zeilenumbruch zu aktivieren?

Einfach händisch "\n"s an die entsprechenden Stellen des angezeigten Strings packen hilft zwar, kann aber leider so später aus verschiedenen Gründen nicht gemacht werden. Der Text muss unverändert bleiben.

Selbst einen MessageBox-Dialog bauen (z.B. als JDialog) möchte ich nicht, da das zuviele Änderungen und zuviel Aufwand bedeuten würde.

Also, falls jemand eine Lösung für das Problem kennt, wäre ich dankbar.

Gruß
m.a.k.
 

killerchicken_inaktiv

Guest
Probier mal diese Methode:
public void setMaximumSize(Dimension maximumSize)

Damit geht das vielleicht
 
Mitglied seit
04.08.2002
Beiträge
1.869
Reaktionen
0
Original geschrieben von killerchicken
Probier mal diese Methode:
public void setMaximumSize(Dimension maximumSize)

Damit geht das vielleicht

Danke für den Vorschlag, aber das klappt leider nicht, da die showConfirmDialog() static ist...
 

killerchicken_inaktiv

Guest
Dann hast du keine Chance, fuerchte ich :(
 

Sas~iN~LoVe

Guest
Ich kenn mich nicht mit Java aus, aber wie wärs, wenn Du JOptionPane ableitest (sofern möglich) und in deiner Klasse nichts zusätzlich machst, als den übergebenen Text zur Anzeige um die Zeilenumbrüche ergänzt und dann die show-Methode der Basisklasse aufrufst?
 

killerchicken_inaktiv

Guest
Naja, da er sagt, dass er den String ueberhaupt nicht anfassen will, bringt das ja nichts...
 

Bronzegraf

Guest
Dann schau Dir einfach an, was showConfirmDialog() macht und kopiere das Verhalten, allerdings mit dem Unterschied, dass Du, wie schon vorgeschlagen, die Breite fest vorgibst...
 
Mitglied seit
04.08.2002
Beiträge
1.869
Reaktionen
0
ok, danke für die vorschläge.
ich denke, ich werde dann wohl entweder einen kleinen parser für den ausgabestring schreiben der diesen korrekt mit zeilenumbrüchen formatiert oder vielleicht passe ich auch die JOptionPane klasse ein bisschen an. mal schauen was weniger arbeit macht.
hatte zwar gehofft es ginge noch einfacher, da ich auf den ganzen firlefanz eigentlich keine lust habe, aber naja, was solls, muss ich druch...
 

Sas~iN~LoVe

Guest
Original geschrieben von killerchicken
Naja, da er sagt, dass er den String ueberhaupt nicht anfassen will, bringt das ja nichts...
Macht er ja nicht im aufrufenden Code. Und was die neue Dialogklasse intern macht, braucht ihn ja nicht zu kümmern. Der Original-String bleibt ja unangetastet, er wird by value übergeben.
 
Oben