Text über ein Bild schreiben

O

olaf-petersen

Ich Habe mir einen JButton erstellt und und mit setIcon ein Bild darauf gesetzt. Dies soll aber nur für den Hintergrund sein, ich möchte also noch einen Text darauf schreiben können.
Code:
  jbutton button = new Jbutton();
  button.setIcon(bild);
  button.setLabel("Button 1");
Das Icon wird auch richtig angezeigt, nur der Text steht daneben und nicht auf dem Icon!
 
Das ist bei Buttons normal.

Einen Versuch wär's wert, das Bild so zu malen:
Code:
public void paint(Graphics g) {
  g.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this);
  super.paint(g);
}
Deinen Button rufst Du dann mit den String-Konstruktor auf.
 
Leider habe ich etwa 300 Buttons die alle eine andere Beschriftung bekommen.

Eigentlich möchte ich ja nur diesen Silbernen Windows button verändern, am besten auch gleich das aussehen bei selekt und bei rollover.
 
Wenn Du meine Variante nutzen willst, dann leite Dir doch einfach eine Master-Klasse von z.B. JButton ab:

Code:
public class MyButton extends JButton {
  public MyButton(String s) {
	super(s);
  }
  public void paint(Graphics g) {
	g.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this);
	super.paint(g);
  }  
}

Danach benutzt Du diese Klasse:

Code:
JButton b1 = new MyButton("Hans");
JButton b2 = new MyButton("im");
JButton b3 = new MyButton("Glück");
 
Hab es gefunden, mit
Code:
setHorizontalTextPosition(SwingConstants.CENTER);
legt das Verhältnis von Text zu Icon fest
 
Zuletzt bearbeitet von einem Moderator:
Zurück