Basic Program Help.

I’m new to Java and would like some help with a pretty basic program. My goal is to make a rotating background image with looping midi music. The background image is basically a blue background with clouds on it. This is what I have so far:


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

public class game extends JApplet
{
private static final long serialVersionUID = 1L;

public void init( )
	{
		Container content_pane = getContentPane ();
		Image img = getImage (getCodeBase (), "background.jpg");
		DrawingPanel drawing_panel =  new DrawingPanel (img);
		content_pane.add (drawing_panel);
		play( getCodeBase( ), "music.mid");
	}
class DrawingPanel extends JPanel
{
	private static final long serialVersionUID = 1L;
	Image img;

  DrawingPanel (Image img)
  { this.img = img; }

  public void paintComponent (Graphics g) {
   super.paintComponent (g);   
   g.drawImage (img, 0, 0, this);
}
}
}

This displays the image and plays the music but doesn’t loop or rotate. Also I cant get the panel to default to the size of the image. Any help/tips/links would be very much appreciated!
Thanks.


Sequencer sequencer = sequencer = MidiSystem.getSequencer();
Sequence song = MidiSystem.getSequence(getURL(filename));
sequencer.setSequence(song);
sequencer.setLoopCount(Sequencer.LOOP_CONTINUOUSLY);
sequencer.start();

Something like that. Look in javax.sound.midi, and use sequencer.stop() to stop it.

To rotate the image you just need to rotate the graphics area before drawing, I kinda forget, Its late and I am tired, maybe tomorrow ill switch partitions and dig up some code for the rotatings. Its simple though, you want a loop that adds to a variable that is the rotation. Then you call g.rotate(rotation, center.x, center.y)(maybe not I don’t really remember and am far to tired to look it up right now), draw and rotate back.
In the loop you should calculaate rotation based on the time since last “frame” and multiply whatever you change your rotatoin with by that.

like rotation = rotation + rotationChange * elapsedTimeSinceLastFrame;

then rotate the context and draw… i think i repeated myself several times im tired. good night sir.