📄 btapplet.java
字号:
// Source File Name: BTApplet.java
import java.applet.Applet;
import java.awt.*;
import java.util.Random;
import java.util.StringTokenizer;
public class BTApplet extends Applet
{
public void init()
{
setLayout(new BorderLayout());
panel = new BTPanel(this);
add("Center", panel);
Panel panel1 = new Panel();
add("South", panel1);
panel1.add(TFdata = new TextField(2));
panel1.add(BTinsert = new Button("INSERT"));
panel1.add(BTremove = new Button("DELETE"));
panel1.add(BTlocate = new Button("FIND"));
panel1.add(BTdelall = new Button("DELETE ALL"));
panel1.add(CBAVL = new Checkbox("AVL"));
panel1.add(LBpick = new Label("PICK "));
panel1.add(CLpick = new Choice());
panel1.add(BTTraverse = new Button("TRAVERSE"));
CLpick.addItem("INORDER");
CLpick.addItem("PREORDER");
CLpick.addItem("POSTORDER");
CBAVL.setState(true);
panel.tree.AVLbalanced = true;
treeInOrder = false;
}
public void readData()
{
if(dataLoaded == true)
return;
String tempString = null;
String nodes = null;
int length = 0;
int number = 0;
nodes = getParameter("nodes");
if(nodes != null){
StringTokenizer stringtokenizer = new StringTokenizer(nodes, ",");
for(int i = 0; i <12&& stringtokenizer.hasMoreTokens();i++){
tempString = stringtokenizer.nextToken().trim();
length = tempString.length();
if(length < 3){
try{
number = Integer.parseInt(tempString);
if(i < 0) continue;
tempString = length == 2? tempString : "0" + tempString;
BTData btdata = new BTData(tempString);
panel.tree.insert(btdata);
panel.placeNodes();
}catch(NumberFormatException e ){
}
}
System.out.println(tempString);
}
}
dataLoaded = true;
}
public String getText()
{
/*
text = TFdata.getText();
if(text.trim().length() == 0)
text = getRandomText();
if(text.trim().length() == 1)
text = "0" + text;
if(text.trim().length() > 2)
text = text.substring(0, 2);
return text;
*/
String text = TFdata.getText();
text = text.trim();
if(text.length() == 0)
return null;
else
if(text.length() == 1)
text = "0" + text;
else
if(text.length() > 2)
text = null;
try {
int i = Integer.parseInt(text);
if(i == 0) text = "00";
//if(i < 0)
// text = null;
}catch(NumberFormatException e){
text = null;
}
return text;
}
public String getRandomText()
{
new Random();
int i = (int)(99D * Math.random());
text = String.valueOf(i);
return text;
}
public boolean action(Event event, Object obj)
{
panel.resetModes();
if(event.target == BTlocate)
{
text = getText();
if(text != null){
BTData btdata = new BTData(text);
panel.locate(btdata);
btdata = null;
}
TFdata.setText("");
return true;
}
if(event.target == BTinsert)
{
text = getText();
// Added to make sure that value is > 0;
System.out.println("text value is " + text);
if(text != null && Integer.parseInt(text) < 0)
return true;
if(text != null){
BTData btdata1 = new BTData(text);
panel.insert(btdata1);
btdata1 = null;
}
TFdata.setText("");
return true;
}
if(event.target == BTremove)
{
text = getText();
if(text != null){
BTData btdata2 = new BTData(text);
panel.remove(btdata2);
btdata2 = null;
}
TFdata.setText("");
return true;
}
if(event.target == BTdelall)
{
panel.delall();
TFdata.setText("");
return true;
}
if(event.target == BTTraverse)
{
panel.traverse(CLpick.getSelectedIndex());
}
if(event.target == CBAVL)
{
panel.tree.AVLbalanced = CBAVL.getState();
if(panel.tree.AVLbalanced)
panel.balance();
panel.resetNodes();
playSound(2);
return true;
} else
{
return false;
}
}
public void start()
{
panel.start();
readData();
}
public void stop()
{
panel.stop();
}
public void playSound(int i)
{
switch(i)
{
case 1: // '\001'
play(getCodeBase(), "Drip.au");
return;
case 3: // '\003'
play(getCodeBase(), "Miss.au");
return;
case 2: // '\002'
play(getCodeBase(), "Good.au");
return;
}
}
public BTApplet()
{
System.out.println("in BTApplet ");
}
static final int DRIP = 1;
static final int GOOD = 2;
static final int MISS = 3;
BTPanel panel;
Button BTTraverse;
Button BTinsert;
Button BTremove;
Button BTlocate;
Button BTdelall;
TextField TFdata;
String text;
Checkbox CBAVL;
Label LBpick;
Choice CLpick;
boolean treeInOrder;
boolean dataLoaded;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -