?? usemycursor2.java
字號:
// 程序:加入聲音
// 范例文件:UseMyCursor2.java
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class UseMyCursor2 extends Applet
implements MouseListener,MouseMotionListener
{
int AppletWidth,AppletHeight,drawX,drawY;
Image MyCursor1,MyCursor2;
Cursor myCursor1,myCursor2;
Toolkit TK;
MediaTracker MT;
Image OffScreen;
Graphics drawOffScreen;
AudioClip A1,A2,A3;
public void init()
{
//A1是鐵錘敲下時的聲音,A2是鐵錘移動時的聲音,
//A3是鐵錘進入Applet時的聲音
A1 = getAudioClip(getDocumentBase(),"Audio/audio1.au");
A2 = getAudioClip(getDocumentBase(),"Audio/audio2.au");
A3 = getAudioClip(getDocumentBase(),"Audio/audio3.au");
addMouseListener(this); //注冊事件處理方法
addMouseMotionListener(this);
setBackground(Color.gray);
TK = getToolkit(); //取得Toolkit
//取得自訂光標圖像
MyCursor1 = getImage(getDocumentBase(),"Images/hammer1.gif");
MyCursor2 = getImage(getDocumentBase(),"Images/hammer2.gif");
MT = new MediaTracker(this);
MT.addImage(MyCursor1,0);
MT.addImage(MyCursor2,0);
AppletWidth = getSize().width; //取得Applet的高度
AppletHeight = getSize().height; //取得Applet的寬度
OffScreen = createImage(AppletWidth,AppletHeight);
drawOffScreen = OffScreen.getGraphics();
try
{
MT.waitForAll();
}
catch(InterruptedException E){ } //沒有進行異常處理
//建立新游標
try
{
myCursor1 = TK.createCustomCursor(MyCursor1,new Point(0,0),"hammer1");
myCursor2 = TK.createCustomCursor(MyCursor2,new Point(0,0),"hammer2");
}
catch(IndexOutOfBoundsException E){ }
setCursor(myCursor1); //設定使用新光標
}
public void update(Graphics g) //update()方法
{
paint(g); //只單純調用paint()方法
}
public void paint(Graphics g)
{
//將次畫面貼到主畫面中
g.drawImage(OffScreen,0,0,this);
}
//=====實現MouseListener界面=======================================
public void mouseExited(MouseEvent e) //鼠標離開Component
{
A3.stop(); //停止播放
}
public void mouseClicked(MouseEvent e) //鼠標按鍵被按下后放開
{
//如果是右鍵產生的mouseClicked事件的話
if((e.getModifiers() & InputEvent.BUTTON3_MASK) != 0)
{
//清除次畫面
drawOffScreen.setColor(getBackground());
drawOffScreen.fillRect(0,0,AppletWidth,AppletHeight);
drawOffScreen.setColor(getForeground());
repaint();
}
}
public void mouseEntered(MouseEvent e) //鼠標進入Component
{
A3.loop(); //循環播放
}
public void mousePressed(MouseEvent e) //鼠標按鍵被按下
{
setCursor(myCursor2);
//如果是左鍵產生的mousePressed事件的話
if((e.getModifiers() & InputEvent.BUTTON1_MASK) != 0)
{
drawX = e.getX();
drawY = e.getY();
drawOffScreen.drawOval(drawX+20,drawY+30,1,1);
drawOffScreen.drawOval(drawX+15,drawY+25,10,10);
drawOffScreen.drawOval(drawX+10,drawY+20,20,20);
repaint();
}
A1.play(); //播放
}
public void mouseReleased(MouseEvent e) //鼠標按鍵放開
{
setCursor(myCursor1);
}
//=====實現MouseMotionListener界面=================================
public void mouseMoved(MouseEvent e) //鼠標移動時
{
A2.play(); //播放
showStatus("(" + e.getX() + "," + e.getY() + ")");
}
public void mouseDragged(MouseEvent e){ } //鼠標拖曳時
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -