[javaapplet] bild auf button legen

€.selein

Grünschnabel
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
 
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

danke im voraus

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);
 
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
 
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
 
Du malst das Bild in der "paint()"-Methode?

Code:
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.
 
Ich erstell einfach ein neues Icon, das ich dann dem Button übergebe:

Code:
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
 
Code:
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.
 
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))
 
Zurück