# JLabel sichtbar machen



## anna (1. Mai 2006)

kann ich es  machen ,dass meine JLabels auch sichtbar werden.. ich meine.. nur Label-text zu sehen wird..ich habe nämlich in meinem GUI viele JLabels ,die so 'Programiert' sind,dass einer im bestimmten Zeitpunkt blinkt. und da ich ein Bild als Hintergrund Habe , will ich für die nicht blinkenden JLabels nur die Texte sehen.. geht das ? 
setOpaque(false) habe ich mit Pnelprobiert.es hat super funktioniert . bei JLabels aber nicht  


Anna


----------



## anna (1. Mai 2006)

ich meinte : JLabels unsichtbar machen


----------



## André Uhres (1. Mai 2006)

Jlabels sind default nicht opaque. Man sieht nur den Text.
Der Text muss natürlich eine Farbe haben die auf dem Hintergrund noch 
zu erkennen ist: wenn das Bild da wo der Text steht schwarz ist und der Text ist schwarz
dann kannst du ja nichts sehen!
Die Farbe lässt sich mit setForeground anpassen.


----------



## anna (1. Mai 2006)

nein. das Bild ist nicht schwa..  sondern rosa


----------



## André Uhres (1. Mai 2006)

anna hat gesagt.:
			
		

> nein. das Bild ist nicht schwa..  sondern rosa


Wenn der Text schwarz ist und nicht rosa, müsste man ihn sehen.
In welcher Methode zeichnest du das Bild?


----------



## anna (1. Mai 2006)

von daher kann man den Text überall sehen . olso gibt es eine Methode im JLabel , die den JLabel-Hintergrund trasparent macht, wobei der enthaltene Text sichtbar bleibt?


----------



## André Uhres (1. Mai 2006)

anna hat gesagt.:
			
		

> ..gibt es eine Methode im JLabel , die den JLabel-Hintergrund trasparent macht..?


Ist nicht nötig, JLabel ist standardmässig transparent.
Das müsste *ohne weiteres *funktionieren,
es sei denn, die Art wie du das Bild zeichnest ist nicht korrekt.

```
//package paint;
/* 
* HintergrundTest.java 
*/ 
import java.awt.*; 
import java.awt.event.*; 
import java.awt.image.*; 
import java.io.*;
import java.net.*; 
import javax.imageio.*; 
import javax.swing.*; 
public class HintergrundTest extends JFrame { 
    public HintergrundTest() { 
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 
        setSize(300,210); 
        setLocationRelativeTo(null); 
        Background background = new Background(); 
        getContentPane().add(background); 
        JTextField test = new JTextField("Textfeld Textfeld Textfeld Textfeld ");
        JLabel lab = new JLabel("Label Label Label Label Label Label Label ");
        test.setOpaque(false);
        test.setBorder(null);
        background.add(test, BorderLayout.SOUTH); 
        background.add(lab, BorderLayout.CENTER); 
    } 
    public static void main(String args[]) {new HintergrundTest().setVisible(true);} 
    class Background extends JPanel{ 
        public Background(){ 
            setLayout(new BorderLayout());
            System.out.println("Loading image, please wait..."); 
            try{ 
                URL url = new URL( 
                    "http://www.nzz.ch/images/wetter/radargross.jpg"); 
//                "file:c:\\image00001x.jpg"); 
                image = ImageIO.read(url); 
//                ImageIO.write(image,"jpg", new File("test1.jpg"));
                System.out.println("Image loaded"); 
            }catch(Exception ex){ 
                ex.printStackTrace(); 
            } 
        } 
        public void paintComponent(final Graphics g) { 
            super.paintComponent(g); 
            g.drawImage(image,0,0,null); 
        } 
        private BufferedImage image; 
    } 
}
```


----------



## anna (1. Mai 2006)

zu dem Beispiel :wenn der JLabel auf dem Bild ist , ist dann  nicht nur "Label Label Label Label Label Label Label " zu sehen sondern auch der JLabel-Hintergrund. ich will aber nur den JLabel-Text auf dem Bild sehen,was in Wahrheit ein JLabel ist . 

ich habe nämlich in meinem GUI viele JLabels ,die so 'Programiert' sind,dass einer im bestimmten Zeitpunkt blinkt. und da ich ein Bild als Hintergrund Habe , will ich für die nicht blinkenden JLabels nur die Texte sehen.. geht das ? 
setOpaque(false) habe ich mit Pnelprobiert.es hat super funktioniert . bei JLabels aber nicht 

Anna


----------



## André Uhres (1. Mai 2006)

anna hat gesagt.:
			
		

> zu dem Beispiel :wenn der JLabel auf dem Bild ist , ist dann  nicht nur
> "Label Label Label Label Label Label Label " zu sehen sondern auch der JLabel-Hintergrund...


Bei mir sehe ich keinen JLabel-Hintergrund.
Ich habe jdk1.5.0_06 unter Windows XP.


----------



## MarioH (2. Mai 2006)

Kann es sein, dass du ein Label und kein JLabel benutzt?

Denn JLabels haben erstens die Methode setOpaque, und sind standartmäßig immer auf transparent.


----------

