JButton mit Bild und Label

  • Themenstarter Themenstarter Gast
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Gast

Gast
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:

Code:
JPanel southPnl = new JPanel();
        button1= new JButton ("Okay");
        ImageIcon bild = new ImageIcon("Haus.jpg");
        button1.setIcon(bild);
        button1addActionListener( this );
 
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
 
ich hab es jetzt so gemacht


Code:
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]
 
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:
 
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:

Code:
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)
 
Mhm, kann hier auch niemand anderes mir helfen? Wäre schon gut, wenn das gelöst wäre...
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben