q.java

来自「一个有关汉诺塔的java编程」· Java 代码 · 共 56 行

JAVA
56
字号

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Q extends JApplet implements ActionListener {
	
	JLabel labelPrompt = new JLabel("请输入汉诺塔级数:");
	JTextField fieldLevel = new JTextField(14);
	JTextArea areaResult = new JTextArea("该文本区域显示结果!",20,25);
	JButton buttonOK = new JButton("确定");
	JScrollPane scroller = new JScrollPane(areaResult);
	
	public void init()
	{
		Container container = this.getContentPane();
		container.setLayout(new FlowLayout());
		container.add(labelPrompt);
		container.add(fieldLevel);
		container.add(scroller);
		container.add(buttonOK);
		buttonOK.addActionListener(this);
		
	}

	public void actionPerformed(ActionEvent e)
	{
		areaResult.setText("");
		tower(Integer.parseInt(fieldLevel.getText()), 'A', 'B', 'C');
		
	}
	
	public void tower(int n, char x, char y, char z)
	{
		if (n == 1)
		{
			moveBrick(n, x, z);
		}
		else
		{
			tower(n - 1, x, z, y);
			moveBrick(n , x, z);
			tower(n - 1, y, x, z);
		}
		
	}
	
	public void moveBrick(int n, char from, char to)
	{
		
		areaResult.append(Integer.toString(n) + ":  " + Character.toString(from) + "  -->  " + Character.toString(to) + "\n");
		
	}
	
}

⌨️ 快捷键说明

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