Icon des Fensters

NiXPhoE

Gesperrter Benutzer
Hallo,

ich möchte das Icon in der linken oberen Ecke des Fensters ändern in dem ich ein JPG lade. Warum geht das mit folgendem Code nicht?

Java:
public class ShockCfg
{ 
		public static void main(final String args[])
	{
					new Rickenbacker();
	}
}

Java:
import java.awt.*;
import javax.swing.*;

public class Rickenbacker
{
	private JFrame ricky;
	private Toolkit tk;
	private Image theICON;

	public Rickenbacker()
	{
		ricky = new JFrame();
		tk = ricky.getToolkit();
		theICON = tk.getImage("Image.jpg");
		ricky.setIconImage(theICON);
		ricky.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		ricky.setSize(425, 359);
   		ricky.setVisible(true);
	}
}
 
Zuletzt bearbeitet:
Also ich habe jetzt daraus folgende Klasse gebastellt und erhalte in Eclipse die Exception:

"The method getImage(URL) is undefined for the type Object.

Was bedeutet das?

Java:
import java.awt.*;
import java.net.URL;

import javax.swing.*;

public class Rickenbacker
{
	private JFrame ricky;

	public Rickenbacker()
	{
		ricky = new JFrame();
		ricky.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		ricky.setSize(425, 359);
   		ricky.setVisible(true);
	}
	
	private void initIcon()
    {
		URL url = ClassLoader.getSystemResource("Image.jpg");
        Image img =  getToolkit().getImage(url);
        this.setIconImage(img);       
    }

	private Object getToolkit() {
		// TODO Auto-generated method stub
		return null;
	}

	private void setIconImage(Image img) {
		// TODO Auto-generated method stub
		
	}
}
 
Ich hab mal gerade in meiner Anwendung nachgeschaut. Dort funktioniert es so:
Java:
...

JFrame mainFrame = new JFrame();
mainFrame.setTitle("Titel der Anwendung");

// Icon für Anwendung
URL filename = getClass().getResource("/resources/images/app_logo_16x16.png");
mainFrame.setIconImage (Toolkit.getDefaultToolkit().getImage(filename));

...

Wobei die Bilder in einem Source Folder liegen, der dem Build Path hinzugefügt wurde.
 
Zuletzt bearbeitet von einem Moderator:
"The method getImage(URL) is undefined for the type Object.

Was bedeutet das?

Man könnte evtl. auf die Idee kommen, mal nachzuschauen was hinter der Methode
Code:
getToolkit()
steckt und wie man überhaupt an ein
Code:
Toolkit
kommt, welches dann auch die Methode
Code:
getImage(URL)
bereit stellt...
 
kaetzacoatle die Methode hatte Eclipse eingefügt, ich weiß es nicht.

So geht es, wenn man getResources aufruft brauch man /resources im Pfad gar nicht, sonst erhält man eine NullPointerException.

Java:
import java.awt.*;
import java.net.URL;

import javax.swing.*;

public class Rickenbacker
{
	private JFrame ricky;
	private Toolkit tk;

	public Rickenbacker()
	{
		ricky = new JFrame();
		ricky.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		ricky.setSize(425, 359);
		URL filename = getClass().getResource("Image.jpg");
   		ricky.setIconImage(tk.getDefaultToolkit().getImage(filename));
   		ricky.setVisible(true);
	}
}

:applaus:
 
Ich versteh nicht ganz,
warum eclipse so was
macht. Hattest du
vielleicht mal ein Inter-
face benutzt?

Ich schätze mal Eclipse hat das deswegen "gemacht" weil die Methode
Code:
getToolkit()
unbekannt war und hat dies als Fehlermeldung angezeigt. Um den Fehler zu beheben wurde dann wahrscheinlich angeboten die unbekannte Methode zu deklarieren, was in dem Fall aber nichts bringt.

Edit: Eine IDE kann halt nur beim Programmieren helfen, aber das Denken übernimmt sie nicht.
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben