Image laden die Zweite

radical_edward

Aktives Mitglied
Hi.
Habe ein Programm angehängt aus dem Skript, aber mit dem laden der gifs klappt es einfach nicht.
gif liegt auf dem Schreibtisch. Muss es wo anders hin bewegt werden?

noch die Frage: was macht new Loader genau?? Implementiert das Interface bzw. die darin enthaltene Methode. ??


Java:
import java.awt.*;
import java.awt.event.*;
interface Loader{
	public Image load();
}

class example extends Frame{
	Image img1;
	Image img2;
	
	public example(final Loader l, String title){
		super(title);
		setBounds(100,100,200,200);
		img1 = l.load();
		addKeyListener(new KeyAdapter(){
			public void keyPressed(KeyEvent e){
				img2 = l.load();
				repaint();
			}
		});
		setVisible(true);	
	}
	public void paint(Graphics g){
		final Insets ins = getInsets();
		g.drawImage(img1,ins.left,ins.top,this);
		if(img2 != null){
			g.drawImage(img2,ins.left+img1.getWidth(this),ins.top+img1.getHeight(this),this);
		}
	}
	
	public static void main (String[]args){
		new example(
				new Loader(){
				public Image load(){
					return Toolkit.getDefaultToolkit().getImage("12x12.gif");
				}
	},"mit getImage");
		
		new example(
				new Loader(){
					public Image load(){
						return Toolkit.getDefaultToolkit().createImage("12x12.gif");
					
				}
				},
				"mit createImage");
}}
 
Bei mir funktioniert es tadellos, wenn die Aufgabe war, ein Bild links oben und eins genau an dessen Ecke rechts unten zu zeichen. Keine Ahnung, was du als "Schreibtisch" bezeichnest, aber bei mir liegt das Bild im Projektordner.

Klassennamen schreibt man übrigens groß.
 
Zuletzt bearbeitet:
Das Image gehört eigentlich immer in den Projektordner und nicht auf den "Schreibtisch" (Desktop). Daher probiere es einmal in den Projektordner zu schieben. Dann sollte sich das Problem lösen lassen.

Edit: Ich würde es mit folgendem Code machen:
Java:
Icon icon = new ImageIcon("12x12.gif");
 
Zuletzt bearbeitet:
New Loader füllt die vom Interface vorgegbene Methode mit Inhalt.
Einmal sollen die Bilder mit getImage und einmal mit createImage erstellt werden.
Finde aber das sieht ziemlich seltsam aus.
 

Neue Themen


Zurück
Oben