?? javaapplet.java
字號(hào):
//******************************************************************************
// JavaApplet.java: Applet
//
//******************************************************************************
import java.applet.*;
import java.awt.*;
import java.net.*;
//==============================================================================
// Main Class for applet JavaApplet
//
//==============================================================================
public class JavaApplet extends Applet implements Runnable
{
// THREAD SUPPORT:
// m_JavaApplet is the Thread object for the applet
//--------------------------------------------------------------------------
private Thread m_JavaApplet = null;
// ANIMATION SUPPORT:
// m_Graphics used for storing the applet's Graphics context
// m_Images[] the array of Image objects for the animation
// m_nCurrImage the index of the next image to be displayed
// m_ImgWidth width of each image
// m_ImgHeight height of each image
// m_fAllLoaded indicates whether all images have been loaded
// NUM_IMAGES number of images used in the animation
//--------------------------------------------------------------------------
private Graphics m_Graphics;
private Image m_Images[];
private int m_nCurrImage;
private int m_nImgWidth = 0;
private int m_nImgHeight = 0;
private boolean m_fAllLoaded = false;
private final int NUM_IMAGES = 8;
private TextField receiveEdit;
private PlaySound playAudio;
private Image backImage,ramImage;
private boolean imageError=false;
private boolean imageLoaded=false;
// JavaApplet Class Constructor
//--------------------------------------------------------------------------
public JavaApplet()
{
// TODO: Add constructor code here
}
// APPLET INFO SUPPORT:
// The getAppletInfo() method returns a string describing the applet's
// author, copyright date, or miscellaneous information.
//--------------------------------------------------------------------------
public String getAppletInfo()
{
return "Name: JavaApplet\r\n" +
"Author: wang\r\n" +
"Created with Microsoft Visual J++ Version 1.1";
}
// The init() method is called by the AWT when an applet is first loaded or
// reloaded. Override this method to perform whatever initialization your
// applet needs, such as initializing data structures, loading images or
// fonts, creating frame windows, setting the layout manager, or adding UI
// components.
//--------------------------------------------------------------------------
public void init()
{
// If you use a ResourceWizard-generated "control creator" class to
// arrange controls in your applet, you may want to call its
// CreateControls() method from within this method. Remove the following
// call to resize() before adding the call to CreateControls();
// CreateControls() does its own resizing.
//----------------------------------------------------------------------
//resize(100, 100); //320,240
// TODO: Place additional initialization code here
setBackground(Color.yellow);
setLayout(new BorderLayout());
receiveEdit=new TextField(40);
add("South",receiveEdit);
// load back ground image
backImage=
getImage(getDocumentBase(),"images1/img01.gif");
// load Audio Sound file
playAudio=
new PlaySound(this,getCodeBase(),"audio\\ah.au");
playAudio.start();
}
// Place additional applet clean up code here. destroy() is called when
// when you applet is terminating and being unloaded.
//-------------------------------------------------------------------------
public void destroy()
{
// TODO: Place applet cleanup code here
}
// ANIMATION SUPPORT:
// Draws the next image, if all images are currently loaded
//--------------------------------------------------------------------------
private void displayImage(Graphics g)
{
if (!m_fAllLoaded)
return;
// Draw Image in center of applet
//----------------------------------------------------------------------
g.drawString("我可以接收J(rèn)AVA Applet A的信息",10,20);
g.clipRect((size().width - m_nImgWidth)/ 2,(size().height - m_nImgHeight)/ 2,
m_nImgWidth,m_nImgHeight);
g.setColor(getBackground());
g.fillRect((size().width - m_nImgWidth)/ 2,(size().height - m_nImgHeight)/ 2,
m_nImgWidth,m_nImgHeight);
g.setColor(getForeground());
g.drawImage(m_Images[m_nCurrImage],
(size().width - m_nImgWidth) / 2,
(size().height - m_nImgHeight) / 2, null);
}
public boolean imageUpdate(Image image,int infoflags,int x,int y,int w,int h)
{
if((infoflags&ERROR)!=0) // load image is error !
{
imageError=true;
return true;
}
repaint();
return ((infoflags&(ERROR|ALLBITS))!=0);
}
public void update(Graphics g)
{
paint(g);
}
// JavaApplet Paint Handler
//--------------------------------------------------------------------------
public void paint(Graphics g)
{
// ANIMATION SUPPORT:
// The following code displays a status message until all the
// images are loaded. Then it calls displayImage to display the current
// image.
//----------------------------------------------------------------------
if (m_fAllLoaded)
{
//Rectangle r = g.getClipRect();
//g.clearRect(r.x, r.y, r.width, r.height);
displayImage(g);
}
else
g.drawString("Loading Applet B images...", 10, 20);
// TODO: Place additional applet Paint code here
Dimension rectSize=size();
g.setColor(Color.red);
g.draw3DRect(0,0,rectSize.width-1,rectSize.height-1,true);
g.draw3DRect(3,3,rectSize.width-7,rectSize.height-7,false);
g.setColor(getForeground());
}
// The start() method is called when the page containing the applet
// first appears on the screen. The AppletWizard's initial implementation
// of this method starts execution of the applet's thread.
//--------------------------------------------------------------------------
public void start()
{
if (m_JavaApplet == null)
{
m_JavaApplet = new Thread(this);
m_JavaApplet.start();
}
// TODO: Place additional applet start code here
playAudio.startPlay();
}
// The stop() method is called when the page containing the applet is
// no longer on the screen. The AppletWizard's initial implementation of
// this method stops execution of the applet's thread.
//--------------------------------------------------------------------------
public void stop()
{
if (m_JavaApplet != null)
{
m_JavaApplet.stop();
m_JavaApplet = null;
}
// TODO: Place additional applet stop code here
playAudio.stopPlay();
}
// THREAD SUPPORT
// The run() method is called when the applet's thread is started. If
// your applet performs any ongoing activities without waiting for user
// input, the code for implementing that behavior typically goes here. For
// example, for an applet that performs animation, the run() method controls
// the display of images.
//--------------------------------------------------------------------------
public void run()
{
m_nCurrImage = 0;
// If re-entering the page, then the images have already been loaded.
// m_fAllLoaded == TRUE.
//----------------------------------------------------------------------
if (!m_fAllLoaded)
{
repaint();
m_Graphics = getGraphics();
m_Images = new Image[NUM_IMAGES];
// Load in all the images
//------------------------------------------------------------------
MediaTracker tracker = new MediaTracker(this);
String strImage;
// For each image in the animation, this method first constructs a
// string containing the path to the image file; then it begins
// loading the image into the m_Images array. Note that the call to
// getImage will return before the image is completely loaded.
//------------------------------------------------------------------
for (int i = 1; i <= NUM_IMAGES; i++)
{
// Build path to next image
//--------------------------------------------------------------
strImage = "images1/img" + ((i < 10) ? "0" : "") + i + ".gif";
m_Images[i-1] = getImage(getDocumentBase(), strImage);
tracker.addImage(m_Images[i-1], 0);
}
// Wait until all images are fully loaded
//------------------------------------------------------------------
try
{
tracker.waitForAll();
m_fAllLoaded = !tracker.isErrorAny();
}
catch (InterruptedException e)
{
// TODO: Place exception-handling code here in case an
// InterruptedException is thrown by Thread.sleep(),
// meaning that another thread has interrupted this one
}
if (!m_fAllLoaded)
{
stop();
m_Graphics.drawString("Error loading images!", 10, 40);
return;
}
// Assuming all images are same width and height.
//--------------------------------------------------------------
m_nImgWidth = m_Images[6].getWidth(this);
m_nImgHeight = m_Images[6].getHeight(this);
}
repaint();
while (true)
{
try
{
// Draw next image in animation
//--------------------------------------------------------------
displayImage(m_Graphics);
m_nCurrImage++;
if (m_nCurrImage == NUM_IMAGES)
m_nCurrImage = 0;
// TODO: Add additional thread-specific code here
Thread.sleep(50);
}
catch (InterruptedException e)
{
// TODO: Place exception-handling code here in case an
// InterruptedException is thrown by Thread.sleep(),
// meaning that another thread has interrupted this one
stop();
}
}
}
// MOUSE SUPPORT:
// The mouseDown() method is called if the mouse button is pressed
// while the mouse cursor is over the applet's portion of the screen.
//--------------------------------------------------------------------------
public boolean mouseDown(Event evt, int x, int y)
{
// TODO: Place applet mouseDown code here
return true;
}
// MOUSE SUPPORT:
// The mouseUp() method is called if the mouse button is released
// while the mouse cursor is over the applet's portion of the screen.
//--------------------------------------------------------------------------
public boolean mouseUp(Event evt, int x, int y)
{
// TODO: Place applet mouseUp code here
return true;
}
// MOUSE SUPPORT:
// The mouseDrag() method is called if the mouse cursor moves over the
// applet's portion of the screen while the mouse button is being held down.
//--------------------------------------------------------------------------
public boolean mouseDrag(Event evt, int x, int y)
{
// TODO: Place applet mouseDrag code here
return true;
}
// MOUSE SUPPORT:
// The mouseMove() method is called if the mouse cursor moves over the
// applet's portion of the screen and the mouse button isn't being held down.
//--------------------------------------------------------------------------
public boolean mouseMove(Event evt, int x, int y)
{
// TODO: Place applet mouseMove code here
return true;
}
// MOUSE SUPPORT:
// The mouseEnter() method is called if the mouse cursor enters the
// applet's portion of the screen.
//--------------------------------------------------------------------------
public boolean mouseEnter(Event evt, int x, int y)
{
// TODO: Place applet mouseEnter code here
return true;
}
// MOUSE SUPPORT:
// The mouseExit() method is called if the mouse cursor leaves the
// applet's portion of the screen.
//--------------------------------------------------------------------------
public boolean mouseExit(Event evt, int x, int y)
{
// TODO: Place applet mouseExit code here
return true;
}
// TODO: Place additional applet code here
public void processRequestFrom(String senderString)
{
receiveEdit.setText("OK Receive----"+senderString);
//Let Explore to Show HTML Document in The Applet Window
getAppletContext().showDocument(getDocumentBase());
//Display Host Name String
if(getCodeBase().getHost()==null)
showStatus("Host is Null String");
showStatus(getCodeBase().getHost());
}
}
//--------Audio Class to Play Sound(must have Sound Hardware Support)
class PlaySound extends Thread
{
Applet applet;
URL baseURL;
String audioFileName;
AudioClip audioClip=null;
public PlaySound(Applet applet,URL baseURL,String audioFileName)
{
this.applet=applet;
this.baseURL=baseURL;
this.audioFileName=audioFileName;
setPriority(MIN_PRIORITY);
}
public void run()
{
audioClip=applet.getAudioClip(baseURL,audioFileName);
if(audioClip!=null)
audioClip.loop();
}
public void startPlay()
{
if(audioClip!=null)
audioClip.loop();
}
public void stopPlay()
{
if(audioClip!=null)
audioClip.stop();
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -