Hallo,
wie bekomme ich ein Bild als Icon in einen Menü-Eintrag?
Das Icon erstelle ich doch erstmal z.B. mit
ImageIcon imgageIcon = new ImageIcon(„D:\JavaDateien\Go.jpeg“);
gell?
Und dann?
DANKE für Hilfe,
Lars
Hallo,
wie bekomme ich ein Bild als Icon in einen Menü-Eintrag?
Das Icon erstelle ich doch erstmal z.B. mit
ImageIcon imgageIcon = new ImageIcon(„D:\JavaDateien\Go.jpeg“);
gell?
Und dann?
DANKE für Hilfe,
Lars
Hi,
wie bekomme ich ein Bild als Icon in einen Menü-Eintrag?
in der API-Dokumentation findest du dazu ausreichend Information.
Es gibt z.B. den Konstruktor
JMenuItem(String text, Icon icon)
und auch die Methode
setIcon(Icon icon)
Ciao, Bill
Ok, und wie wird aus meinem Bild, das ich irgendwo abgespeichert habe ein Icon-Objekt? (Vorsicht: Anfänger!
)
Gruß, Lars
Hallo Lars,
Icon ist nur ein Interface und die Klasse ImageIcon implementiert diese ohnehin. Du kannst also so vorgehen, wie du eh schon dachtest (new ImageIcon …).
Du musst dich unbedingt mit der API-Dokumentation auseinandersetzen. Dort findet man eigentlich alle Informationen, die man braucht 
Ciao, Bill
Hi Bill,
also, ich habe versucht, alles nach api zu machen.
Am besten schreib ich mal kurz, wie’s bei mir aussieht:
Zunächst habe ich über ein Klassenattribut ein ImageIcon produziert, im Konstruktor steht der Pfad, wo ich das entsprechende Bildchen auf meinem PC abgelegt habe.
imgageIcon1 = new ImageIcon(„D:\JavaDateien\Go.jpeg“);
Dann folgt…
menüDatei = new JMenu(„Datei“);
…für ein neues Menü in der schon vorher erstellten JMenuBar.
befehlNeu = new JMenuItem(„Neu“,imgageIcon1);
…dem Klassenattribut befehtNeu wird ein Menüeintrag übergeben. Und zwar mit dem oben erstellten ImageIcon im Konstruktor!
befehlNeu.addActionListener(inhaltNeu);
menüDatei.add(befehlNeu);
…das JMenuItem wird an einen ActionListener angedockt, was hier aber nicht weiter wichtig ist. Tja und dann wird der Menüeintrag noch an das Menü übergeben.
Weiter unten im Quellcode wird dann natürlich das Menü auch noch an die JMenuBar übergeben:
menübar.add(menüDatei);
Müsste meiner Meinung nach funktionieren. Tut’s aber nicht. 
HIIIILLLLFFFFFEEE !

Gruss, Lars
Hi Lars,
ich sehe keinen Grund, warum das nicht funktionieren sollte.
Aber du hast ja leider auch nur Auszüge deines Codes gepostet.
Probier mal das hier:
public class SimpleApplFrame
{
public static void main(String[] args)
{
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT\_ON\_CLOSE);
JMenuBar bar = new JMenuBar();
JMenu menu = new JMenu("Test");
menu.add(new JMenuItem("GIF", new ImageIcon("g1.gif")));
bar.add(menu);
f.setJMenuBar(bar);
f.pack();
f.setVisible(true);
}
}
Wenn die Icon-Datei im gleichen Verzeichnis liegt, wie die Klassendatei, dann sollte es ohne weiteres funktionieren. Deine absolute Pfad-Angabe funktioniert aber genauso!
Ciao, Bill
Hey Bill,
ich hab’s mit Deinem Vorschlag ausprobiert und es funktioniert auch nicht. Ich hab den so in eine neu erstellte Klasse übernommen und in demselben Ordner wie die KLasse auch das Bild (bei mir mit dem Titel „Go.jpeg“) abgespeichert. Das Bild, ein kleiner Pfeil, ist auch nur 15 * 15 Pixel gross. Also, an einer nicht geeigneten Größe sollte es wohl nicht liegen. Es funktioniert weder mit absolutem Pfad, noch mit Abspeichern im „Klassenordner“ 
Gruss, Lars
Moien
Ich hab den so in eine neu erstellte Klasse
übernommen und in demselben Ordner wie die KLasse auch das
Bild (bei mir mit dem Titel „Go.jpeg“) abgespeichert. Das
Bild, ein kleiner Pfeil, ist auch nur 15 * 15 Pixel gross.
Also, an einer nicht geeigneten Größe sollte es wohl nicht
liegen. Es funktioniert weder mit absolutem Pfad, noch mit
Abspeichern im „Klassenordner“
Kannst du mal den kompletten Code UND das Bild irgendwo zum Download ablegen ? Ansonsten per mail an mich.
Ich denke du hast den Classpath verbogen. Oder das Bild ist im Format jpeg2k gespeichert.
cu