📄 baseapplet.java
字号:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
/*
仠BaseApplet
儐乕僓乕偲偺僀儞僞乕僼僃僀僗偵摿壔偟偨Applet
婡擻偼
昞帵懳徾乮悽奅丗World乯偺愝掕丄曄峏
悽奅偺昞帵
庢摼偟偨僀儀儞僩偺悽奅傊偺捠抦
BaseApplet懁偐傜屇傃弌偡World偺儊僜僢僪
//
init() World偺弶婜愝掕乮悽奅傪BaseApplet偵愝掕帪丂嵟弶偵1夞偺傒屇傃弌偟乯
start() World偺摦嶌奐巒乮init屻偐傜destroy慜偺娫丂暋悢夞屇傃弌偟乯
stop()丂World偺摦嶌掆巭乮init屻偐傜destroy慜偺娫丂暋悢夞屇傃弌偟乯
destroy() World偺屻巒枛乮悽奅傪BaseApplet偐傜嶍彍帪丂1夞偺傒屇傃弌偟乯
//
paint(Graphics
g)乮init屻偐傜destroy慜偺娫丂暋悢夞屇傃弌偟丂僗儗僢僪偺徴撍偵拲堄乯
World偐傜屇傃弌偡BaseApplet偺儊僜僢僪
World懁偐傜傕BaseApplet偺婡擻屇傃弌偟傗僀儀儞僩攝怣埶棅偑昁梫側偺偱
嬶懱揑側World偺僐儞僗僩儔僋僞偱BaseApplet傪堷悢偵偟偰搉偡側偳岺晇偟傛偆
//
setWorld(World w)丂
getWorld()
偦偺懠java.awt.applet.Applet偺儊僜僢僪
*/
abstract public class BaseApplet extends Applet {
//*******************************************************************************
//丂弶婜壔偺儊僜僢僪丂帺暘偺栚揑偵墳偠偨悽奅傪愝掕偡傞傛偆偵宲彸愭偱忋彂偒偑昁梫
//*******************************************************************************
abstract public void
init(); //<<帺暘偺World傪愝掕偡傞傛偆偵宲彸愭偱忋彂偒偡傞偙偲
//*******************************************************************************
//丂埲壓偼宲彸愭偱忋彂偒晄壜
//
/*--------------------------------------------------------------
* (1) 昞帵懳徾偺World偺愝掕傗儊僜僢僪屇傃弌偟側偳
* World傪愝掕偡傞偲偒World偺init傪屇傃弌偡
*
愝掕嵪傒偺婛懚World偑偁傞応崌偼丂婛懚World偺愝掕傪夝彍偟偰怴World傪愝掕偡傞
* 愝掕夝彍偡傞偲偒World偺destroy傪屇傃弌偡
-----------------------------------------------------------------*/
protected World world = null;
//World偺愝掕乮嵞愝掕壜乯
public final void setWorld(World world) {
if (this.world == world) {
return;
}
if (this.world != null) {
this.world.stop();
this.world.destroy();
}
this.world = world;
if (this.world != null) {
this.world.init();
}
}
//World偺庢摼
public final World getWorld() {
return world;
}
public final void start() {
super.start();
world.start();
}
public final void stop() {
world.stop();
super.stop();
}
public final void destroy() {
setWorld(null);
super.destroy();
}
/*--------------------------------------------------------------
* (2)僟僽儖僶僢僼傽儕儞僌
* 夋柺偺偪傜偮偒杊巭偺堊偵
* 棤柺偵夋憸傪姰惉偟偰偐傜偄偭偒偵昞帵柺偵僐僺乕偡傞媄朄傪巊偆
-----------------------------------------------------------------*/
private Image bufferImage = null; //棤夋柺
private Graphics bufferImageGraphics = null; //棤夋柺梡偺奊昅
public final void update(Graphics g) {
//棤夋柺偑柍偐偭偨傝丄昞夋柺偲戝偒偝偑堎側傞応崌偼棤夋柺傪嶌傝捈偡
int w = getWidth(); //昞夋柺偺暆
int h = getHeight(); //昞夋柺偺崅偝
if (bufferImage == null || w != bufferImage.getWidth(this) ||
h != bufferImage.getHeight(this)) {
bufferImage = createImage(w, h);
bufferImageGraphics = bufferImage.getGraphics();
}
//棤夋柺傪攚宨怓偱揾傝偮傇偡
Color back = getBackground();
if (back != null) { //攚宨怓偑巜掕偝傟偰偄傟偽
bufferImageGraphics.setColor(getBackground()); //奊昅偺怓傪攚宨怓偵偟
bufferImageGraphics.fillRect(0, 0, w, h); //揾傝偮傇偡
}
bufferImageGraphics.setColor(getForeground()); //奊昅偺怓傪婯掕抣偵栠偡
//棤夋柺偵昤夋
paint(bufferImageGraphics); //偙偙偱壓偺paint傪屇傇
//棤夋柺傪昞夋柺偵僐僺乕
g.drawImage(bufferImage, 0, 0, this);
}
/*--------------------------------------------------------------
* (3)world偺昤夋
* world偺昤夋偼world偵擟偣傞堊偵
* world偵懳偟偰g傪巊偭偰帺恎傪昤夋偡傞傛偆偵埶棅偟偰偄傞
* 乮忋偺update偐傜屇偽傟傞偺偱g偼bufferImageGraphics偱偁傞乯
-----------------------------------------------------------------*/
public final void paint(Graphics g) {
world.paint(g);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -