JOptionDialog nachbauen

hesk

Erfahrenes Mitglied
Hallo!

Ich versuche gerade den JOptionPane.showOptionDialog nachzubauen.

Mein Problem ist der Text.
Mit was gibt man den Text am besten aus. Oder was verwendet JOptionPane dafür?
JLabel ist nur für einzeilige Texte gut.
JTextArea erzeugt wiederum ein Kasterl. Ich will dass der Text aber genauso wie be showOptionDialog aussieht.

Jemand eine Idee?
 
Hab ich schon gemacht. Aber es entsteht trotzdem ein "weißes" Kasterl worin der Text steht.
Der normale Hintergrund ist aber grau. Mit
Code:
warningText.setBackground( parentFrame.getBackground() );
funktioniert es leider auch nicht.

Hier was ich genau machen will:

Durch JOptionPane.showOptionDialog kann man eine Warning ausgeben und auf "yes", "no" abfragen. Dadurch entsteht ein dialog, links ein gelbes Rufzeichen, rechts der Text, und unten rechts die zwei Buttons YES und NO.

Jetzt möchte ich links unten eine comboBox mit "Remember settings" einbauen.

Wenn ich zu den Options für showOptionDialog die ComboBox hinzufüge, dann zeigt er sie zar an, aber ich kann nicht bestimmen wo er sie anzeigt.

Also glaub ich dass ich JOptionPane nicht verwenden kann und mir einen eigenen Dialog bauen muss.
Und dies stellt sich leider als schwierig heraus:
1) Wegen dem Text. Ich möchte dass er einfach am Hintergrund steht, oder eine Area rundherum
2) Das Kasterl soll genauso groß sein wie es der Text benötigt.

Bitte um Hilfe:)
 
Hab dort alles probiert. Aber die richtige Hintergrundfarbe für das JTextArea bekomme ich nicht hin.
Bei einigen LookAndFeels geht es, aber nicht bei allen.
 
Bei welchem Look&Feel geht es den? Ich weiß nicht ob ejdes Look&Fell diese Änderung unterstützt.
 
Code:
JTextArea warningText = new JTextArea();
warningText.setText( text );
warningText.setOpaque( false );
warningText.setEditable( false );

Funktioniert bei allen bis auf LookAndFeel "Nimbus"
 
Damit es auch mit Nimbus funktioniert:

Code:
JTextArea warningText = new JTextArea();
warningText.setText( text );
warningText.setOpaque( false );
warningText.setEditable( false );
warningText.setBackground(new Color(0,0,0,0));
warningText.setBorder( null );
 
Zurück