Já tentou usar o método setVisible(boolean) no componente que vc quer
sobrepor?
Neste caso o componente que deve aparecer vc daria um setVisible(true) e no
outro setVisible(false).

Espero que ajude.

Romulo Bertegz


----- Original Message -----
From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, September 09, 2002 3:23 PM
Subject: [java-list] JFrame


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]
-------------------------------------------------------------------------

------------------------------ 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