Erstellen Sie einen gerundeten JFrame / ContentPane

8

Ich erstelle ein Login-Fenster mit abgerundeten Ecken in Java. Alles ist in Ordnung, siehe Bild, aber ich habe Schwierigkeiten, die JFrame / ContentPane transparent zu machen. Es gibt weiße Bereiche an jeder Ecke (durch die Pfeile gezeigt), die ich scheinbar nicht entfernen kann, da ich für JFrame oder ContentPane nicht opague auf false setzen kann.

Irgendwelche Ideen, wie ich diese weißen Bereiche entfernen kann alt text http://i39.tinypic.com/dmsile.png

    
n002213f 05.06.2009, 06:56
quelle

4 Antworten

2

Seit Java 1.3 gibt es einen Trick, mit dem man teilweise transparente Fenster oder Fenster einblenden kann (ich benutze das normalerweise für meine Startbildschirme) oder spezielle Effekte (wie Schatten):

  • Bevor Sie das Fenster öffnen, erstellen Sie programmatisch einen Screenshot der Region, in der sich Ihr Fenster befindet (mit java.awt.Robot.createScreenCapture ())
  • Legen Sie den Screenshot als Hintergrund für Ihren Stammcontainer fest (JPanel mit der benutzerdefinierten Routine paintComponent ())
  • Nun können Sie alle Arten von transparenten Komponenten hinzufügen oder ein weiteres halbtransparentes Bild über den Hintergrund malen.

Beispiel, das mit dieser Technik ein Fenster mit einem halbtransparenten Schatten erzeugt: Ссылка

    
Peter Walser 05.06.2009 08:16
quelle
2

Nicht viel Hilfe für Sie, aber Java7 wird transparente und geformte Fenster unterstützen: Weitere Informationen hier . Diese sind bereits in Java 6u10 verfügbar, aber nicht öffentlich, dh Sie müssen eine nicht unterstützte com.sun ... Klasse verwenden, die sich in Zukunft ändern und Ihr Programm unterbrechen könnte.

    
banjollity 05.06.2009 08:32
quelle
1

versuche das. seine Arbeit:)

%Vor%     
Harsha Sampath 08.03.2015 09:18
quelle
0

JFrame kann nicht transparent gemacht werden, da es eine schwergewichtige Komponente ist. Nur leichte Komponenten wie JWindow können transparent gemacht werden.

    
objects 05.06.2009 07:49
quelle

Tags und Links