swing JLabel und bewegte gifs

DDDB

Grünschnabel
Hallo, Mehrwissende,

um etwas Layout mit swing zu ueben, habe ich mir die Uebung gestellt, ein Fenster mit zwei Buttons und einem bewegten gif aus Monkey Island zu bauen. Genaugenommen sind es zwei gifs, auf einem laeuft Guybrush Threepwood nach links, auf dem anderen nach rechts, und je nach Knopfdruck soll er die Richtung aendern.

Vermutlich denken nun alle schon: loops, bewegte gifs pfui! Aber, um mir darueber Gedanken machen zu koennen, muesste ich erst einmal in der Lage sein, ueberhaupt irgendein Bild auf meinenJFrame zu zaubern...und genau da hakt es.
Vielleicht kann mir ja jemand helfen...

Hier zunaechst der code der main Methode:
PHP:
import javax.swing.*;


public class guy1 extends JFrame{
	
	public static void main( String[] args ) 
	  { 
		Guy2 g = new Guy2();
	    g.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); 
	    
	    g.setSize( 600, 500 ); 
	    g.setVisible( true );
	    g.setResizable( false );
	   
	 } 
	
	

}

So, das war ja eigentlich zur Fragestellung belanglos, aber der Vollstaendigkeit halber...
Nun zur Klasse Guy2, um die es geht:

PHP:
import java.awt.FlowLayout;
import java.awt.event.ActionEvent; //der schlaeft noch
import java.awt.*;
import javax.swing.*;


public class Guy2 extends JFrame {
	
	
	Image img1;
	private JButton left;
	private JButton right;
	
	
	
	public Guy2(){
	
	super("Guybrush Threepwood");
	setLayout (new FlowLayout());
	
	left = new JButton("left");
	add (left);
	right = new JButton("right");
	add (right);
	
	Image image = Toolkit.getDefaultToolkit().createImage("<guybrush.gif>");
	JLabel label = new JLabel(new ImageIcon(image));
	add(label);


	
	}
}
Ist wie gesagt noch im Aufbau, fehlt also noch das eventhandling, auch das zweite Bild usw. Aber wieso haengt mein JLabel nur rum und zeigt sich nicht? Hab auch schon
PHP:
label.setVisible(true);
angehaengt, hat aber auch nichts geholfen.

Vielen Dank im Voraus!
 
Hallo,

ist den auch der Pfad zu dem Bild korrekt?
Die spitzen Klammern haben da eigendlich nichts zu suchen.

Versuch es mal evtl. so:
Code:
ClassLoader loader01= getClass().getClassLoader();
URL urlzudemBild = loader01.getResource("guybrush.gif");
Image image = this.getToolkit().getImage(urlzudemBild );

Es kommt natürlich darauf an, wo du dein guybrush.gif liegen hast.
Aber mit der obrigen Methode hast du dann keine Probleme, wenn du das ganze dann irgendwann mal in eine Jar packst.

MfG
hansmueller
 
Hallo Hansmueller,

vielen Dank fuer deine Antwort!
Es waren tatsaechlich nur die spitzen Klammern! Wo ich das her hab, da spitze Klammern zu setzen, weiss ich auch nicht so recht.
Und dass man da nicht selbser drauf kommt... habe wirklich alles hin-und hergewuerfelt und neu probiert, nur die spitzen Klammern natuerlich nicht. :)

Beste Gruesse
 
Zurück