Wie man java.das awt.Label-hintergrund transparent?
Früher habe ich den transparenten hintergrund mit javax.swing.JLabel auf diese Weise:
lbl.setBackground(new Color(0, 0, 0, 0));
.
Aber es funktioniert nicht mit java.das awt.Label. Gibt es eine einfache Möglichkeit, um die label transparent?
Update:
public class SplashBackground extends Panel {
private static final long serialVersionUID = 1L;
private Image image = null;
/**
* This is the default constructor
*/
public SplashBackground() {
super();
initialize();
}
/**
* This method initializes this
*
*/
private void initialize() {
image = Toolkit.getDefaultToolkit().createImage(getClass().getResource("/splash/splash.jpg"));
this.setLayout(null);
}
@Override
public void paint(Graphics g) {
super.paint(g);
if(image != null) {
g.drawImage(image, 0,0,this.getWidth(),this.getHeight(),this);
}
}
}
und
lbl= new Label();
lbl.setBackground(new Color(0, 0, 0, 0));
splashBackground = new SplashBackground();
splashBackground.add(appNameLabel, null);
Nicht sicher, warum Ihr JLabel benötigt, um seinen hintergrund zu setzen, da es nicht blickdicht standardmäßig, so können Sie Ihren hintergrund zu nichts und es wird transparent. Also zurück zu deiner Frage: warum AWT und nicht Swing mit diesem etwa gehen?
Nicht sicher, wie ich verpasst Ihren Kommentar, es war nur 3 Stunden Zeit, bevor ich mich,, +1.
Voller Aale: ich denke, das ist, weil ich den label in der benutzerdefinierten panel (siehe update in der Frage). AWT-weil es schneller geladen. Und das ist für splash-Fenster. Das ist für ein "lernendes Projekt".
Nicht sicher, wie ich verpasst Ihren Kommentar, es war nur 3 Stunden Zeit, bevor ich mich,, +1.
Voller Aale: ich denke, das ist, weil ich den label in der benutzerdefinierten panel (siehe update in der Frage). AWT-weil es schneller geladen. Und das ist für splash-Fenster. Das ist für ein "lernendes Projekt".
InformationsquelleAutor bancer | 2011-06-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich kann sehen, warum Sie nicht wollen, zu lastpendeln, da es für einen splash. Sun/Oracle die eigene Umsetzung von
SplashScreen
ist AWT.Warum nicht einfach verwenden, dass vorhandene Klasse für Ihre splash-Funktionalität?
Erwähnt camickr, siehe So Erstellen Sie einen Splash-Screen für ein Beispiel.
Nun das ist was ich spreche.
Als die labels, lasse Sie aus. Verwenden
FontMetrics
oder (besser)TextLayout
zu bestimmen, die Größe/position des Textes, dann malen Sie einfach direkt auf dieImage
.Ein Beispiel für die Verwendung der
TextLayout
- Klasse finden Sie in trashgod Antwort 'Java2D-Grafik anti-Aliasing'.Ich sehe nicht, wie diese Antworten, die OP ' s ursprüngliche Frage, obwohl es eine feine (und richtigere) alternative...
Sie sind wahrscheinlich richtig in Ihrer Einschätzung. Manchmal habe ich das Gefühl die OP möglicherweise die falsche Frage gestellt, und fühlen sich gezwungen, die Antwort zu geben zur 'Frage' wie ich am besten verstehen. Natürlich, manchmal bekomme ich es schrecklich falsch. Tatsächlich - jetzt habe ich nachgelesen, dass Titel, strike 'wahrscheinlich richtig' und 'korrigieren'.
Ich wollte meine eigene Implementierung, da es schwer zu testen java.das awt.SplashScreen. Ich hatte zu bauen MyApp.jar Datei jedes mal habe ich verpasst. Das splash-Fenster erschien nur, wenn ich führen Sie die jar-Datei.
hatte zu bauen MyApp.jar Datei jedes mal habe ich verpasst." Verwenden von Ant & ein dev. Maschine mit ein wenig Grunzen und es hört auf, ein problem zu bauen, ein Projekt für eine neue läuft.
InformationsquelleAutor Andrew Thompson
Macht das nichts. Ein JLabel ist standardmäßig transparent (ie setOpaque(false)). Sie können Lesen wollen Hintergrund Mit Transparenz zu verstehen, wie tranparency arbeitet mit Swing.
Habe ich noch nie verwendet, eine Bezeichnung, aber wenn es funktioniert, so etwas wie ein JLabel, dann würde ich denke, Sie überschreiben die isOpaque () - Methode false zurück.
Thats, warum sollte ich stick mit Schwung 🙂
InformationsquelleAutor camickr