# [javaapplet]  bild auf  button legen



## €.selein (7. Juni 2004)

könnte mir mal jemand sagen, ob es möglich ist auf einen button ein bild zu legen, also das man den button nicht als solchen erkennt, sondern er wie ein einfaches bidl aussieht?

wenn es geht möglichst auch eine kurze beschreibung

danke im voraus


----------



## Snape (7. Juni 2004)

> _Original geschrieben von €.selein _
> *könnte mir mal jemand sagen, ob es möglich ist auf einen button ein bild zu legen, also das man den button nicht als solchen erkennt, sondern er wie ein einfaches bidl aussieht?
> 
> wenn es geht möglichst auch eine kurze beschreibung
> ...



AbstractButton:

public void setIcon(Icon defaultIcon)

    Sets the button's default icon. This icon is also used as the "pressed" and "disabled" icon if there is no explicitly set pressed icon.

    Parameters:
        defaultIcon - the icon used as the default image



Also in der Art
yourButton.setIcon(yourIcon);


----------



## Thomas Darimont (7. Juni 2004)

Hallo!

Wenn du mit AWT arbeiten müsst wird dir wohl oder übel nichts anderes übrig bleiben als die paint()  Methode des Buttons zu überschreiben...

Unter Swing ging das ganz leicht ... einfach mit setIcon(Icon icon);
Das Icon könnte z.Bsp. ein imageIcon sein...

Gruß Tom


----------



## Berndt Kasurske (2. Februar 2005)

Hi!

  Das Bild auf den Button zu bekommen ist kein Ding, d.h. das hab ich geschafft 
  Habe jetzt aber folgendes Problem:

bild

 Heißt: Das Bild, das ich als Hintergrund für den Button gewählt habe (der Button hat die selbe Größe wie das Bild), ist ein paar Pixel nach links versetzt, sitzt also nicht im Zentrum. 

  Kann ich irgendwie einstellen, dass das Bild den ganzen Button ausfüllt?

  Danke


----------



## schnuffie (3. Februar 2005)

Du malst das Bild in der "paint()"-Methode?


```
g.drawImage(img, 0, 0, this.getWidth(), this.getHight(), this);
```
 
Sollten immernoch Ränder zu sehen sein, könntest Du statt 0 eine -1 und bei Breite und Höhe stets 1 dazuzählen.


----------



## Berndt Kasurske (3. Februar 2005)

Ich erstell einfach ein neues Icon, das ich dann dem Button übergebe:


```
jButtonFrage = new JButton();
  ImageIcon bild = new ImageIcon("bilder/button1.jpg");
  jButtonFrage.setIcon(bild);
 jButtonFrage.setHorizontalAlignment(SwingConstants.CENTER);
 jButtonFrage.setVerticalAlignment(SwingConstants.CENTER);
```
 
  Das Bild sitzt dann wir gesagt und gezeigt auf dem Knopp drauf, nur halt versetzt.

 Bzgl. Deines Vorschlages mit pö-a-pö die Koordinaten des Bildes auf den Button abpassen is nich so mein Ding, sowas wurd mir früh von meinem Informatiklehrer ausgetrieben 
  Aber wenns nicht anders gehen sollte, was solls.

  Danke


----------



## schnuffie (4. Februar 2005)

```
Dimension d = new Dimension(bild.getIconWidth(), bild.getIconHeight());
jButtonFrage.setPreferredSize(d);
```
 
...somit wäre Dein Button (bei Verwendung mit Layoutmanagern) genau so groß, wie das Bild.


----------



## olle_heCKe (15. Mai 2007)

Wenn der Rahmen jedoch benötigt wird (z.B. um ihn Zustandsabhängig einzufärben)
sollte man die Abstände - Buttonrand<-->Inhalt entsprechend anpassen:

jButton.setMargin(new Insets(0,0,0,0))


----------

