# JButton mit Bild und Label



## Gast (10. Mrz 2005)

Hallo, ich habe da eine Frage, ich hab mir einen JButton erstellt und diesem ein Icon zugewiesen, der JButton soll zusätzlich zu seinem Bild auch noch den üblichen Button text haben. Soweit bin ich schon, aber ich hätte gerne, dass der Text auf dem Bild steht, damit nicht so eine große Fläche neben dem Bild nur mit dem Text verbraucht wird. 

Der Code sieht so aus:


```
JPanel southPnl = new JPanel();
        button1= new JButton ("Okay");
        ImageIcon bild = new ImageIcon("Haus.jpg");
        button1.setIcon(bild);
        button1addActionListener( this );
```


----------



## Java Lover (10. Mrz 2005)

wie wäre es wenn du das bild erstmal lädst
Image bild = Toolkit.getDefaultToolkit().getImage("Haus.jpg");

dann temporär auf das bild deinen text schreibst
Graphics g = bild.getGraphics();
g.drawString(0,0,"Hallo Text");

ud zum schluss aus dem image ein IconImage machst
ImageIcon bildIcon = new ImageIcon(bild);

probiers mal aus, viel spaß damit


----------



## Gast (10. Mrz 2005)

ich hab es jetzt so gemacht 



```
JPanel southPanel = new JPanel();
        button1 = new JButton ();
        Image bild = Toolkit.getDefaultToolkit().getImage("Haus.jpg");

        Graphics g = bild.getGraphics();
        g.drawString(0,0,"Okay");

        ImageIcon bildIcon = new ImageIcon(bild);
        button1.setIcon(bildIcon);
        button1.addActionListener( this );
```

da krieg ich nur leider ne Fehlermeldung bei bei Graphics g und bei g.drawString [/code]


----------



## Beni (10. Mrz 2005)

Zum 1. Fehler: hast du ein "import java.awt.Grahics", bzw, "import java.awt.*" gemacht? Ohne das geht es nicht.

Zum 2. Fehler: Guck dir die Reihenfolge der Argumente für drawString mal genauer an :wink:


----------



## Gast (11. Mrz 2005)

Hallo Beni, ich hab mir das nochmal genau angeschaut und alles überprüft, ich habe die beiden benötigten imports drin und die Reihenfolge der Argumente getauscht, somit schaut der Code nun so aus:


```
import java.awt.Graphics;
import java.awt.*;
...

JPanel southPanel = new JPanel(); 
        button1 = new JButton (); 
        Image bild = Toolkit.getDefaultToolkit().getImage("Haus.jpg"); 

        Graphics g = bild.getGraphics(); 
        g.drawString("Okay", 0, 0); 

        ImageIcon bildIcon = new ImageIcon(bild); 
        button1.setIcon(bildIcon); 
        button1.addActionListener( this ); 
...
```

so im Eclipse zeigt er jetzt auch keine Fehler mehr an, aber wenn ich die Datei dann starte, bekomm ich Fehlermeldungen....
Sie lautet:

Exception in thread "AWT-EventQueue-0" java.lang.UnsupportedOperationException: getGraphics() not valid for images created with createImage(producer)
	at sun.awt.image.ToolkitImage.getGraphics(Unknown Source)


----------



## Gast (12. Mrz 2005)

Mhm, kann hier auch niemand anderes mir helfen? Wäre schon gut, wenn das gelöst wäre...


----------

