📄 btapplet.java
字号:
// Source File Name: BTApplet.java
import java.applet.Applet;
import java.awt.*;
import java.net.URL;
import java.util.Random;
public class BTApplet extends Applet
{
public BTApplet()
{
setLayout(new FlowLayout(1, 0, 0));
}
public URL getURL()
{
return url;
}
public String getImageBase()
{
return "images/";
}
public void init()
{
url = getCodeBase();
ball = new Image[MODE.BALL.length];
for(int i = 0; i < MODE.BALL.length; i++)
ball[i] = getImage(url, "images/" + MODE.BALL[i]);
arrow = new Image[MODE.ARROW.length];
for(int i = 0; i < MODE.ARROW.length; i++)
arrow[i] = getImage(url, "images/" + MODE.ARROW[i]);
circle = new Image[MODE.CIRCLE.length];
for(int i = 0; i < MODE.CIRCLE.length; i++)
circle[i] = getImage(url, "images/" + MODE.CIRCLE[i]);
panel = new BTPanel(this);
add(panel);
add(TFdata = new TextField(" ", 2));
add(BTinsert = new Button("Insert"));
add(BTlocate = new Button("Find"));
add(BTdelete = new Button("Delete"));
add(BTminmax = new Button("Min"));
add(BTdelall = new Button("DeleteAll"));
add(BTtraverse = new Button("Traverse"));
add(CLtraverse = new Choice());
CLtraverse.addItem("in-order");
CLtraverse.addItem("pre-order");
CLtraverse.addItem("post-order");
}
public boolean action(Event event, Object object)
{
if(event.target == BTlocate)
{
String text = getText();
BTData data = new BTData(text);
panel.find(data);
data = null;
TFdata.setText("");
return true;
}
if(event.target == BTinsert)
{
String text = getText();
BTData data = new BTData(text);
panel.insert(data);
data = null;
TFdata.setText("");
return true;
}
if(event.target == BTdelete)
{
String text = getText();
BTData data = new BTData(text);
panel.delete(data);
data = null;
TFdata.setText("");
return true;
}
if(event.target == BTminmax)
{
if(BTminmax.getLabel() == "Min")
BTminmax.setLabel("Max");
else
BTminmax.setLabel("Min");
panel.flipMinMax();
return true;
}
if(event.target == BTdelall)
{
panel.deleteAll();
TFdata.setText("");
return true;
}
if(event.target == BTtraverse)
{
String text = getTextNoRandom();
BTData data = new BTData(text);
panel.traverse(data);
data = null;
TFdata.setText("");
return true;
}
if(event.target == CLtraverse)
{
int order = CLtraverse.getSelectedIndex();
panel.setOrder(order, CLtraverse.getItem(order));
return true;
} else
{
return false;
}
}
public String getText()
{
String text = TFdata.getText();
text = text.trim();
if(text.length() == 0)
text = getTextRandom();
else
if(text.length() == 1)
text = "0" + text;
else
if(text.length() > 2)
text = text.substring(0, 2);
int i = Integer.parseInt(text);
if(i < 0)
text = String.valueOf(-i);
return text;
}
public void setText(String text)
{
TFdata.setText(text);
}
public void clearText()
{
TFdata.setText("");
}
public String getTextRandom()
{
new Random();
int i = (int)(99D * Math.random());
String text = String.valueOf(i);
if(text.trim().length() == 1)
text = "0" + text;
if(text.trim().length() > 2)
text = text.substring(0, 2);
return text;
}
public String getTextNoRandom()
{
String text = TFdata.getText();
if(text.trim().length() == 0)
return "";
if(text.trim().length() == 1)
text = "0" + text;
if(text.trim().length() > 2)
text = text.substring(0, 2);
return text;
}
public void start()
{
panel.start();
}
public void stop()
{
panel.stop();
}
public void playSound(int sound)
{
if(!panel.mute && sound > 0)
play(url, "sounds/" + SOUND.NAME[sound - 1]);
}
public Image getBall(int color)
{
return ball[color];
}
public Image getArrow(int side)
{
return arrow[side + 1];
}
public Image getCircle(int index)
{
return circle[index];
}
public static final String IMAGEBASE = "images/";
public static final String SOUNDBASE = "sounds/";
public URL url;
public Image ball[];
public Image arrow[];
public Image circle[];
BTPanel panel;
TextField TFdata;
Button BTlocate;
Button BTinsert;
Button BTdelete;
Button BTminmax;
Button BTdelall;
Button BTtraverse;
Choice CLtraverse;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -