# JLabels übereinander legen



## Persuader (18. Mai 2004)

Hallo zusammen

Existiert eine (möglichst einfache) Möglichkeit, mehrere JLabels übereinander zu legen?
Meine Situation sieht folgenermassen aus: ich habe ein JLabel in welchem ich per ImageIcon ein Bild drin habe. Dieses Bild soll als Hintergrundbild für ein zweites JLabel dienen, welches als Inhalt jedoch Text besitzt.

Wie ist das zu realisieren?


----------



## L-ectron-X (18. Mai 2004)

Vielleicht mit einem NullLayout und den setOpaque()-Methoden.
Wie viel Text soll es denn werden? Wenn es nur eine Zeile ist, kannst Du den Text auch mit der setIconTextGap()-Methode über das Bildchen schieben.


----------



## Persuader (18. Mai 2004)

Eine Zeile Text über das Bildchen reicht völlig 

Wie mache ich das nun mit dieser setIconTextGap Methode?
Das ImageIcon definiere ich ganz normal so:

```
ImageIcon imgStatus = new ImageIcon("images/statusbg.gif");
```

wie sieht nun die Methode aus, welche text über das Bild schreibt?
imgStatus.setIconTextGap("bla"); funktioniert leider nicht 
habe aber auch gelesen, diese methode diene zum setzen des Abstands zwischen Text und Grafik?


----------



## L-ectron-X (18. Mai 2004)

```
jLabel.setIconTextGap(int iconTextGap);
```
Übergibst Du eine negative Zahl, verschiebt sich der Text nach links, bei einer positiven Zahl nach rechts.


----------



## Persuader (18. Mai 2004)

hmmm irgendwie kapier ich das nicht...
ich habe nun also 2 JLabels mit dieser setIconTextGap Methode:


```
JLabel lblSong      = new JLabel("Judas Priest - Painkiller (07:16)");
ImageIcon imgStatus = new ImageIcon("images/statusbg.gif");
JLabel lblStatus    = new JLabel(imgStatus);
lblSong.setIconTextGap(100);
```

die beiden Labels platziere ich auf nem Panel:

```
JPanel panelStatus  = new JPanel(new GridLayout());
panelStatus.add(lblSong);
panelStatus.add(lblStatus);
```

doch da tut sich irgendwie gar nicht


----------



## Illuvatar (18. Mai 2004)

Du brauchst dann nur noch ein JLabel, mit Icon und Text, und dann setIconTextGap mit negativem Wert aufrufen.


----------



## Persuader (18. Mai 2004)

und wie mache ich ein JLabel mit Text UND Icon?

```
JLabel lblSong = new JLabel("Judas Priest - Painkiller (07:16)", imgStatus);
```
hat nicht funktioniert doch soch mache ich es immer mit JButtons...


----------



## L-ectron-X (18. Mai 2004)

Ja, das kann nicht gehen, schau Dir mal die Konstruktoren von JLabel an, dann wird Dir auch klar warum.
Konstruiere einfach ein Label mit Text.

```
JLabel l = new JLabel("LabelText");
```
und füge ihm dann das Icon/Bildchen hinzu und richte den Text aus.

```
l.setIcon(new ImageIcon("bild.gif"));
l.setIconTextGap(50); //Text rutscht 50 Pixel nach rechts
```


----------



## Roar (18. Mai 2004)

rtfAPI: http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JLabel.html#JLabel(java.lang.String, javax.swing.Icon, int)


----------

