# Probleme mit setIconImage



## Pago83 (24. Apr 2007)

Hallo,

ich möchte mein eigenes Icon für das Programmfenster implementieren. Habe schon etliche Vorschläge aus dem Forum hier ausprobiert, aber bekomme es einfach nicht hin.

Mein jpg File befindet sich im selben Package wie meine Klasse.

Mein Code sieht wie folgt aus (in der leeren Zeile nach frame.setTitle wollte ich frame.setIconImage... setzen, aber das funktionierte nicht):


```
import java.awt.event.InputEvent;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.KeyStroke;

public class FrameTest 
{
	public static void main(String[] args)
	{
		JFrame frame = new JFrame();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setTitle("ProxyIPParser");
		
		frame.setSize(700, 500);
		JMenuBar menuBar = new JMenuBar();
		JMenu fileMenu = new JMenu("Datei");
		JMenuItem item = new JMenuItem("Öffnen");
		item.setAccelerator(KeyStroke.getKeyStroke(new Character('o'), InputEvent.CTRL_MASK));
		fileMenu.add(item);
		JMenu helpMenu = new JMenu("Hilfe");
		
		menuBar.add(fileMenu);
		menuBar.add(helpMenu);
		frame.setJMenuBar(menuBar);
		frame.setVisible(true);
	}
}
```

Kann mir evtl. jemand weiterhelfen?

MfG Pago


----------



## thE_29 (24. Apr 2007)

Und wie wolltest du es setzen?

Hast du ein Jar Archiv? Willst du das von einer IDE aus, etc.. da braucht man schon mehr Angaben!


----------



## Pago83 (24. Apr 2007)

Also, ein JAR habe ich nicht. Was meinst du mit der IDE?

Ich möchte nur erreichen, dass die Java Kaffeetasse oben links durch mein eigenes Icon ausgetauscht wird.

Jetzt evtl. verständlicher?


----------



## The_S (24. Apr 2007)

setIconImage funktioniert aber. Was funktioniert denn nicht?


----------



## AlArenal (24. Apr 2007)

JFrame#setIconImage ist dein Freund

EDIT:
Oh ich Honk  Soweit warst du ja schon! 

Aber ich schließe mich Hobbit an: Es funktioniert.


----------



## Pago83 (24. Apr 2007)

Also, ich hatte folgendes geschrieben:

frame.setIconImage("re_icon.JPG")

Das funktionierte aber nicht. Es wurde immer noch die Kaffeetasse angezeigt.


----------



## The_S (24. Apr 2007)

Das kommt daher, da setIconImage ja auch ein Image erwartet und keinen String :roll:


----------



## Pago83 (24. Apr 2007)

Die Anführungszeichen sollten nur meinen Dateinamen darstellen, sorry ;-)


----------



## AlArenal (24. Apr 2007)

Pago83 hat gesagt.:
			
		

> Also, ich hatte folgendes geschrieben:
> 
> frame.setIconImage("re_icon.JPG")
> 
> Das funktionierte aber nicht. Es wurde immer noch die Kaffeetasse angezeigt.



Du kannst nicht einfach einer Methode irgendwas übergeben, was dir in den Sinn kommt und erwarten, dass sie weiß was du von ihr willst. Schau mal in die Dokumentation der Methode, dann siehst du, dass die Methode eine Instanz der Klasse Image erwartet und keinen String.

http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/JFrame.html#setIconImage(java.awt.Image)


----------



## Pago83 (24. Apr 2007)

Wie muss der Code denn nun genau aussehen in meinem Fall?


----------



## The_S (24. Apr 2007)

Mit einem Image oder einer davon erbenden Klasse, die dein Bild repräsentiert.


----------



## Pago83 (24. Apr 2007)

Kann mir keiner evtl. mal den reellen Code nennen, den ich benötige?

Bin noch nicht so fit in Java.


----------



## The_S (24. Apr 2007)

gerade deswegen kauen wir dir nicht alles vor, du sollst dabei ja auch was lernen  . Im Forum findest du jede Menge Beispiele, wie du ein Image auf unterschiedliche Arten laden kannst. Da sollte doch auch was für dich dabei sein!?


----------



## Pago83 (24. Apr 2007)

Das stimmt zwar, aber ich komme einfach nicht weiter. Bräuchte wirklich momentan eher die Lösung als den Weg dorthin.


----------



## The_S (24. Apr 2007)

Na, so schwer ist das doch nicht. Machen wirs halt schrittweiße.

Was benötigt denn die Methode setIconImage der Klasse JFrame für ein Parameter?


----------



## Pago83 (24. Apr 2007)

Danke für deine Mühe, aber hab es jetzt doch hinbekommen.


----------



## The_S (24. Apr 2007)

... na denn poste wenigstens die lösung


----------



## planetshaker (27. Apr 2007)

Würdest du bitte wirklich die Lösung posten??? Hilft nicht nur dir weiter...!


----------



## merlin2 (28. Apr 2007)

Wenn er's nicht posten will, tu ich's:

```
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class JFrameWithIcon extends JFrame {
  public JFrameWithIcon (String Title) {
    super (Title);
    addWindowListener(new WindowAdapter() {
      public void windowClosing (WindowEvent evt) {System.exit(0);}});
    setSize(700, 700);
    getContentPane().setLayout(new BorderLayout());
    setIconImage(getToolkit().getImage("Icon.jpg"));
  }
  public static void main (String args[]) {
    new JFrameWithIcon("JFrame with icon").setVisible(true);
  }
}
```


----------

