这是主要的课程
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);
}
}
}
这是二级课程
public class Delay
{
public void wait(int milliseconds)
{
try
{
Thread.sleep(milliseconds);
}
catch (Exception e)
{
// ignoring exception at the moment
}
}
}
答案 0 :(得分:2)
不要覆盖paint()方法。通过覆盖JPanel(或JComponent)的paintComponent()方法完成自定义绘制,然后将面板添加到applet
不要从任何绘画方法调用repaint()。这将导致无限循环。
不要在绘画方法中使用睡眠代码。如果您想要动画,请使用Swing Timer
不要从绘画方法中读取图像。创建类时应该读取一次图像。
类名以大写字母开头。 “demo_image”应为“DemoImage”。