Srs.

estou escrevendo pela primeira vez uma pequena aplicação
usando swing, e estou com algumas dúvidas.
A aplicação extende a classe JFrame, tem um menuBar, um Panel
(topPanel) dividido em três áreas, NORTH - um panel com o
toolBar, SOUTH - um JTextField para mensagens e no CENTER -
um panel (mainPanel).

A idéia é que que ao iniciar a aplicação mostra no mainPanel uma
tela de Login, caso o cliente seja validado, no CENTER do
topPanel será mostrado uma JTable.

A aplicação está funcionando, mas a JTable não aparece sobre a
tela de Login, a não ser que a janela da aplicação tenha seu
tamanho alterado (maximização por exemplo).

minha dúvida é como sobrepor ou como remover um panel (login)
por outro.
 qualquer ajuda será muito bem recebida.

em anexo uma versão simples da aplicação. Clique em
"Cadastro/Usuário"  para ver o que acontece.


att,

ronaldo miranda
www.divinet.com.br
www.isp.com.br
(37) 3222-8870 (37) 9963-8241


import java.sql.*;
import java.net.URL;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.plaf.metal.DefaultMetalTheme;
import javax.swing.plaf.metal.MetalLookAndFeel;

class Teste extends JFrame
{
        JPanel                          topPanel;
        JPanel                          toolPanel, pConexao;
        JPanel                          mainPanel;
        JTextField                      login, msgField;
        JPasswordField          senha;
        JMenuBar                        menuBar;
        JToolBar                        toolBar;
        JLabel                          label;

        JDBCTablePanel                          resultTable;

    protected JSplitPane                entradaPane;

        int i;

        public Teste()
        {
                setTitle( "Teste" );
                setSize( 610, 430 );

                //Painel Principal
                topPanel = new JPanel();
                topPanel.setLayout( new BorderLayout() );

                //Painel ToolBar
                toolPanel = new JPanel();
                toolPanel.setLayout( new FlowLayout() );
                topPanel.add(toolPanel, BorderLayout.NORTH);

                mainPanel = new JPanel();
                mainPanel.setLayout( new BorderLayout() );
                mainPanel.setBorder(new EtchedBorder());
                topPanel.add(mainPanel, BorderLayout.CENTER);

                msgField = new JTextField("Mensagens...");
                topPanel.add(msgField,"South");

                getContentPane().add( topPanel );

                // Create the menu bar
                menuBar = new JMenuBar();

                // Set this instance as the application's menu bar
                setJMenuBar( menuBar );

                JMenu mArquivo = new JMenu( "Arquivo" ) ;

                JMenuItem       miArqMS                 =       new JMenuItem("Mudar 
Senha");
                JMenuItem       miArqSair               =       new JMenuItem("Sair");
                JMenuItem       miArqSup                =       new 
JMenuItem("Suporte");


                mArquivo.add(miArqMS);
                mArquivo.add(miArqSair);
                mArquivo.addSeparator();
                mArquivo.add(miArqSup);

                JMenu mCadastros                        = new JMenu( "Cadastros" ) ;
                JMenuItem       miCadUsu                = new JMenuItem("Usuários");
                miCadUsu.addActionListener( new actionUsuarios() );
                JMenuItem       miCadIns                = new JMenuItem("Insumos");
                mCadastros.add(miCadUsu);
                mCadastros.add(miCadIns);


                menuBar.add( mArquivo);
                menuBar.add( mCadastros);

                pConexao        = new JPanel();
                pConexao.setLayout(new BoxLayout(pConexao, BoxLayout.Y_AXIS));
                pConexao.setBorder(BorderFactory.createEmptyBorder(20,20,20,20));

                JPanel pLogin   = new JPanel();
                pLogin.setLayout( new FlowLayout() );
                label  = new JLabel("Login: ");
                pLogin.add(label);
                login = new JTextField(10);
                pLogin.add(login);
                pLogin.setAlignmentX(JComponent.CENTER_ALIGNMENT);


                JPanel pSenha   = new JPanel();
                pSenha.setLayout( new FlowLayout() );
                label  = new JLabel("Senha: ");
                pSenha.add(label);
                senha = new JPasswordField(10);
                pSenha.add(senha);
                pSenha.setAlignmentX(JComponent.CENTER_ALIGNMENT);


                JButton bConectar       = new JButton("Conectar");
                bConectar.setToolTipText("Clique aqui para se conectar");
                bConectar.setAlignmentX(JComponent.CENTER_ALIGNMENT);
                bConectar.addActionListener( new Conectar() );

                pConexao.add(Box.createRigidArea(new Dimension(0,5)));
                pConexao.add(pLogin);
                pConexao.add(Box.createRigidArea(new Dimension(0,5)));
                pConexao.add(pSenha);
                pConexao.add(Box.createRigidArea(new Dimension(0,5)));
                pConexao.add(bConectar);
                pConexao.add(Box.createRigidArea(new Dimension(0,5)));

                mainPanel.add(pConexao, BorderLayout.SOUTH);

                //Anonymous inner class to terminate program.
                this.addWindowListener( new WindowAdapter()
                {
                        public void windowClosing( WindowEvent e )
                        {
                                System.out.println("!!");
                                System.exit( 0 );
                        }
                } );//end addWindowListener
        }


////Usuários
        class actionUsuarios implements ActionListener
        {
                public void actionPerformed(ActionEvent e)
                {
                        //....
                        //Lista os usuários numa JTable e os adiciona em
                        //topPanel.add(resultTable, BorderLayout.CENTER);
                        JPanel pTable   = new JPanel();
                        pTable.setLayout( new FlowLayout() );
                        JLabel label  = new JLabel("Painel com uma JTable ");
                        pTable.add(label);

                        topPanel.remove(mainPanel);
                        topPanel.add(pTable, BorderLayout.CENTER);

                }
        }

        class Conectar implements ActionListener
        {
                public void actionPerformed(ActionEvent e)
                {
                        //verifica se os campos login e senha foram verificados e sim 
conecta com o bando em fetch();

                }
        }

        public int fetch()
        {
                //conecta com o banco de dados e retorna 0, 1 ou 2.
                return 0;
        }


        public static void main( String args[] )
        {
                // Create an instance of the test application
                Teste mainFrame = new Teste();

        try
                {
                        javax.swing.plaf.metal.MetalLookAndFeel.setCurrentTheme( new 
javax.swing.plaf.metal.DefaultMetalTheme());
                        
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
                        SwingUtilities.updateComponentTreeUI(mainFrame);
                        mainFrame.pack();
        }
            catch (Exception exc)
                {
            System.err.println("Não possível carregar o LookAndFeel Metal ");
        }
                mainFrame.setVisible( true );
        }
}


------------------------------ 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
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------

Responder a