Dividir em + classes!

2 respostas
C
Pessoal, eu fiz o programa que resolve o algoritmo da torre de hanoi, mas fiz em uma classe so. Gostaria d saber c da pra dividi esse programa em + classes menores. Alguem pd me ajuda ?? Segue o font.
// Hanoi.java

/*
 * Programa que usa recursao pra faze o algoritmo 
 * da Torre de Hanóis
 */
 
/** 
* @utor : Cassolato
*/

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

public class Hanoi extends JFrame implements ActionListener {

   public JTextArea area;
   public JScrollPane barra;
   public JLabel lNDiscos, lOrigem, lDestino, lUso, lSaida, 
                 lEspaco, lEspaco1;
   public JTextField fNDiscos, fOrigem, fDestino, fUso;
   public JButton bCalcular;
   
   long nDiscos, origem, destino, uso;
   
   public Hanoi() {
      setDefaultCloseOperation( EXIT_ON_CLOSE );
      setTitle( "Torre de Hanói" );
      setLayout( new FlowLayout() );
      setSize( 200, 370 );
      setResizable( false );
      
      Container c = getContentPane();
      
      // Botao de Confirmacao
      bCalcular = new JButton( "  Calcular  " );
      bCalcular.addActionListener( this );
            
      // Area de Saida
      area = new JTextArea( 10, 6 );
      area.setEditable( false );
               
      barra = new JScrollPane( area );
                 
      // JLabels
      lNDiscos = new JLabel( "Número de Discos    " );
      lOrigem  = new JLabel( "Nº Torre de Origem  ");
      lDestino = new JLabel( "Nº Torre de Destino " );
      lUso     = new JLabel( "Nº Torre de Uso       " );
      lSaida   = new JLabel( "Movimentações" );
      
      lEspaco  = new JLabel( "                      " );
      lEspaco1 = new JLabel( "                      " );      
      
      // JTextFields
      fNDiscos = new JTextField( 3 );
      fOrigem  = new JTextField( 3 );
      fDestino = new JTextField( 3 );
      fUso     = new JTextField( 3 );
      
      c.add( lNDiscos );
      c.add( fNDiscos );
      c.add( lOrigem );
      c.add( fOrigem );
      c.add( lDestino );
      c.add( fDestino );
      c.add( lUso );
      c.add( fUso );
      c.add( lEspaco );
      c.add( bCalcular );
      c.add( lEspaco1 );
      c.add( lSaida );
      c.add( barra );
      
      setVisible( true );
   }
   
   if( continua == 4 ) 
      System.exit(0);
      //Teste();
   else 
     System.exit( 0 );
   
   public void actionPerformed( ActionEvent e ) {
      nDiscos = ( Integer.parseInt( fNDiscos.getText() ) );
      origem  = ( Integer.parseInt( fOrigem.getText() ) ); 
      destino = ( Integer.parseInt( fDestino.getText() ) );
      uso     = ( Integer.parseInt( fUso.getText() ) );
      
      MoverTorre( nDiscos, origem, destino, uso );
   }

   public void MoverTorre( long altura, long de, long para, long uso ) {
      if( altura > 0 )  {
         MoverTorre( altura - 1, de, uso, para );
         MoverDisco( de, para );
         MoverTorre( altura - 1, uso, para , de );  
      }
   }

   public void MoverDisco( long origem, long destino ) {
       area.append( origem + " -> " + destino + "\n" );
   }
   
   public static void main( String[] args ) {
      new Hanoi();
   }
   
}

Desde ja agradeco!

Abracao e te + :razz:

2 Respostas

F

hehhe , mas ta tão reduzido o código precisa mesmo dividir em + classes?? :lol:

qual a finalidade???

C

E sim, tp… era + pra ver como q ficaria o font, sera q alguem pd me ajuda:?:

Criado 14 de janeiro de 2005
Ultima resposta 14 de jan. de 2005
Respostas 2
Participantes 2