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