⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 btapplet.java

📁 The applet illustrates the behaviour of binary search trees, Searching and Sorting Algorithms, Self-
💻 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 + -