This is the primary class
import java.awt.*;
import java.applet.*;
import javax.swing.*;
import java.net.*;
import java.awt.event.*;
public class demo_image extends JApplet {
private Image offscreen;
private double wildcat_x;
private int wildcat_y;
public void init() {
player();
wildcat_x = 50;
wildcat_y = 50;
}
public void paint(Graphics g) {
Graphics gg =(Graphics2D)offscreen.getGraphics();
Delay x = new Delay();
gg.clearRect(0,0,getSize().width, getSize().height);
gg.drawImage(offscreen,0,0,null);
gg.drawString("Welcome to Java!!", 50, 60 );
gg.drawImage(getImage(getDocumentBase(),"tyro.png"),(int)wildcat_x,wildcat_y, 250,300,this);
wildcat_x+=2;
repaint();
x.wait(30);
gg.dispose();
}
public void player(){
try{
AudioClip b = getAudioClip( new URL(getCodeBase()+"track02.wav"));
b.play();
}
catch(Exception e){
System.out.println(e);
}
}
}
This is the secondary class
public class Delay
{
public void wait(int milliseconds)
{
try
{
Thread.sleep(milliseconds);
}
catch (Exception e)
{
// ignoring exception at the moment
}
}
}
Don't override the paint() method. Custom painting is done by overriding the paintComponent() method of a JPanel (or JComponent) and then you add the panel to the applet
Don't invoke repaint() from any painting method. This will cause an infinite loop.
Don't use sleeping code inside a painting method. If you want animation then use a Swing Timer
Don't read images from a painting method. The image should be read once when the class is created.
Class name start with an upper case character. "demo_image" should be "DemoImage".