//Towers of Hanoi, classic problem (recursive method)//Java how to program, 5/e, Exercise 6.37-38import javax.swing.*;import java.awt.*;import java.awt.event.*;public class HanoiTowers extends JApplet implements ActionListener { int number, starting, destination, temp; JLabel numberLabel, startingLabel, destinationLabel, tempLabel; JTextField numberField, startingField, destinationField, tempField; JTextArea output; JScrollPane scroller; public void init() { Container container=getContentPane(); container.setLayout(new FlowLayout()); numberLabel= new JLabel("Enter the number of disks:"); container.add(numberLabel); numberField=new JTextField(10); container.add(numberField); startingLabel= new JLabel("Enter the starting tower:"); container.add( startingLabel); startingField=new JTextField(10); container.add( startingField); destinationLabel= new JLabel("Enter the destination tower:"); container.add(destinationLabel); destinationField=new JTextField(10); container.add(destinationField); tempLabel= new JLabel("Enter the temporary tower:"); container.add(tempLabel); tempField=new JTextField(10); container.add(tempField); tempField.addActionListener(this); output=new JTextArea(17,30); scroller=new JScrollPane(output); container.add(scroller); } public void actionPerformed (ActionEvent event) { number=Integer.parseInt(numberField.getText()); starting=Integer.parseInt(startingField.getText()); destination=Integer.parseInt(destinationField.getText()); temp=Integer.parseInt(tempField.getText()); HanoiRecursiveMethod(number, starting, destination, temp); } public void HanoiRecursiveMethod(int number, int starting, int destination, int temp) { if (number==1) output.append(starting+"--->"+destination+"/n"); else { HanoiRecursiveMethod(number-1,starting,temp,destination); output.append(starting+"--->"+destination+"/n"); HanoiRecursiveMethod(number-1,temp,destination,starting); } } }