Transparenter Rahmen von JTextField in Swing

8

Ich habe ein Suchfeld in einem JPanel. Das JPanel hat ein Hintergrundbild. Ich möchte ein JTextField in diesem Panel platzieren, aber das JTextField sollte einen transparenten Rahmen haben, so dass es oben und unten etwas Polsterung hat, wo Sie das Hintergrundbild des Panels sehen sollten.

Ich habe hier einen SSCCE, bei dem das Panel einen blauen Hintergrund anstelle eines Hintergrundbildes hat. Ich möchte, dass das Textfeld weiß ist, aber mit einer Umrandung, durch die Sie das blaue Feld darunter sehen können. Ein transparenter Rahmen wäre großartig, aber EmptyBorder funktioniert nicht. Hier ist der SSCCE:

%Vor%

vielen Dank.

Danke für deine Antwort Guillaume. Mein JTextfield ist in einem JPanel mit Borderlayout, aber der NORTH- und SOUTH-Teil waren nicht besetzt. Also habe ich Box.createVerticalStrut (10) verwendet und zu NORTH und SOUTH hinzugefügt. Das hat auch für mich funktioniert. Aber ich behalte Ihren Vorschlag im Hinterkopf, also habe ich eine andere Lösung, falls ich NORTH und SOUTH für andere Komponenten verwende.

    
haferblues 17.09.2012, 09:49
quelle

1 Antwort

8

Das Problem ist, dass das TextUI automatisch den gesamten Hintergrund des Textfelds einschließlich der Einfügungen malt, wenn es auf undurchsichtig eingestellt ist (was der Standard ist).

Ein einfacher Trick besteht darin, Ihr Textfeld in ein anderes JPanel zu verpacken, dieses JPanel als undurchsichtig zu definieren und den Rahmen auf dieses JPanel zu setzen.

Ihr Code wurde mit diesen Informationen aktualisiert:

%Vor%     
Guillaume Polet 17.09.2012 10:01
quelle

Tags und Links