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

📄 tower.java

📁 汉诺塔得演示程序.该程序是数据结构中得汉诺塔得演示程序.可以用来进行汉诺塔得教学演示
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;

public class Tower extends Frame implements ActionListener, Runnable {
	HannoiTower tower = null;

	Button renew, auto = null;

	char towerName[] = { 'A', 'B', 'C' };

	int diskNumber, diskWidth, diskHeight;

	Thread thread;

	TextArea infoBar = null;

	public Tower() {
		thread = new Thread(this);
		diskNumber = 5;
		diskWidth = 80;
		diskHeight = 18;
		infoBar = new TextArea(12, 12);
		infoBar.setText(null);
		tower = new HannoiTower(diskNumber, diskWidth, diskHeight, towerName,
				infoBar);
		renew = new Button("重新开始");
		auto = new Button("自动演示搬盘子");
		renew.addActionListener(this);
		auto.addActionListener(this);
		add(tower, BorderLayout.CENTER);
		add(renew, BorderLayout.SOUTH);
		add(auto, BorderLayout.NORTH);
		add(infoBar, BorderLayout.EAST);
		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
		setVisible(true);
		setBounds(60, 20, 670, 540);
		validate();
	}

	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == renew) {
			if (!(thread.isAlive())) {
				this.remove(tower);
				infoBar.setText(null);
				tower = new HannoiTower(diskNumber, diskWidth, diskHeight,
						towerName, infoBar);
				add(tower, BorderLayout.CENTER);
				validate();
			} else {
			}
		}
		if (e.getSource() == auto) {
			if (!(thread.isAlive())) {
				thread = new Thread(this);
			}
			try {

				thread.start();
			} catch (Exception eee) {
			}

		}
	}

	public void run() {
		this.remove(tower);
		infoBar.setText(null);
		tower = new HannoiTower(diskNumber, diskWidth, diskHeight, towerName,
				infoBar);
		add(tower, BorderLayout.CENTER);
		validate();
		tower.autoRunDisk(diskNumber, towerName[0], towerName[1], towerName[2]);
	}

	public static void main(String args[]) {
		new Tower();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -