>Ol� pessoal !
>
>Rodei um pequeno exemplo de c�digo e ele funciona OK, mas quando fecho a 
>aplica��o, o prompt n�o retorna. Sou obrigado a ir no gerenciador de tarefa 
>e matar o processo java.exe no Winnt.
>N�o sei se � relevante, mas para conseguir rodar, tive que setar o 
>classpath com o comando SET CLASSPATH=  , para desaparecer o erro que 
>estava ocorrendo ao rodar: ""Exception in thread "main" 
>java.lang.NoClassDefFounError:Teste""
>
>O que tem de errado nesse c�digo ?

>//
>import javax.swing.*;
>import java.awt.event.*;
>import java.awt.*;
>
>public class Teste extends JFrame implements ActionListener
>{
>  JPanel pn1A;
>  JPanel pn1B;
>  JLayeredPane layeredPane;
>  JMenuItem mA;
>  JMenuItem mB;
>  public static void main( String args[] )
>  {
>   new Teste();
>  }
>  public Teste()
>  {
>   super("Teste");
>   setBounds( 200, 100, 400, 400 );
>   layeredPane = getLayeredPane();
>   layeredPane.setLayout( null );
>
>   //Prepara o menu
>   JMenuBar menuBar = new JMenuBar();
>   getRootPane().setJMenuBar( menuBar );
>   JMenu menu = new JMenu( "Pain�is");
>   menuBar.add( menu );
>   mA = new JMenuItem("Panel A");
>   mA.addActionListener( this );
>   menu.add( mA );
>   mB = new JMenuItem("Panel B");
>   mB.addActionListener( this );
>   menu.add( mB );
>
>   // Cria os Pain�is
>   pn1A = new JPanel();
>   pn1A.setBackground( Color.blue );
>   pn1A.setBounds( 0, 20, 400, 380 );
>   layeredPane.add( pn1A, new Integer(1));
>
>   pn1B = new JPanel();
>   pn1B.setBackground( Color.yellow );
>   pn1B.setBounds( 0, 20, 400, 380 );
>   layeredPane.add( pn1B, new Integer(2));
>
>   setVisible( true );
>  }
>
>  public void actionPerformed( ActionEvent ae )
>  {
>
>   if( ae.getSource() == mA )
>   {
>    layeredPane.setLayer( pn1A, 1 );
>    layeredPane.setLayer( pn1B, 0 );
>   }
>   else
>   {
>    layeredPane.setLayer( pn1A, 0 );
>    layeredPane.setLayer( pn1B, 1 );
>   }
>  }
>}
>//
>
>Abra�os.
>
>Jos� Fernando

  Se voce encerrar o programa ao fechar a janela do frame, esse problema 
deve ser resolvido. Basta adicionar um WindowListener e encerrar o processo 
usando System.exit(0). Observe as modificacoes no metodo main.

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

public class Teste extends JFrame implements ActionListener
{
  JPanel pn1A;
  JPanel pn1B;
  JLayeredPane layeredPane;
  JMenuItem mA;
  JMenuItem mB;

  public Teste()
  {
   super("Teste");
   setBounds( 200, 100, 400, 400 );
   layeredPane = getLayeredPane();
   layeredPane.setLayout( null );

   //Prepara o menu
   JMenuBar menuBar = new JMenuBar();
   getRootPane().setJMenuBar( menuBar );
   JMenu menu = new JMenu( "Pain�is");
   menuBar.add( menu );
   mA = new JMenuItem("Panel A");
   mA.addActionListener( this );
   menu.add( mA );
   mB = new JMenuItem("Panel B");
   mB.addActionListener( this );
   menu.add( mB );

   // Cria os Pain�is
   pn1A = new JPanel();
   pn1A.setBackground( Color.blue );
   pn1A.setBounds( 0, 20, 400, 380 );
   layeredPane.add( pn1A, new Integer(1));

   pn1B = new JPanel();
   pn1B.setBackground( Color.yellow );
   pn1B.setBounds( 0, 20, 400, 380 );
   layeredPane.add( pn1B, new Integer(2));

   setVisible( true );
  }

  public void actionPerformed( ActionEvent ae )
  {

   if( ae.getSource() == mA )
   {
    layeredPane.setLayer( pn1A, 1 );
    layeredPane.setLayer( pn1B, 0 );
   }
   else
   {
    layeredPane.setLayer( pn1A, 0 );
    layeredPane.setLayer( pn1B, 1 );
   }
  }
   //***MODIFICACOES
  public static void main( String args[] )
  {
     Teste app = new Teste();

     app.addWindowListener( new WindowAdapter()
     {
       public void windowClosing(WindowEvent e)
       {
           System.exit(0);
       }
     }
   );


  }//close main

}

Assim voce finaliza a aplicacao quando a janela eh fechada retornando ao 
prompt.

Espero que a dica ajude.

Abraco,
Luis Fernando.




______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com

    --------------------------- LISTA SOUJAVA ---------------------------
    http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP
    [d�vidas mais comuns: http://www.soujava.org.br/faq.htm]
    [para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
    ---------------------------------------------------------------------

Responder a