Boa tarde galera, sei q sou novato aki no fórum, mas o conheço e pesquiso tem algumas semanas, só não havia me registrado pq encontrava aki as respostas para as minhas dúvidas em outros tópicos, só q agora empaquei em uma questão.
To fazendo um programinha, e quero criar uma janela com menus (os menus eu ainda vou fazer) e quero carregar outros containers de classes externas dentro da minha janela principal q tbm é uma classe q só terá a janela e os menus... fiz +/- assim...
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.beans.*;
public class principal extends JFrame
{
public principal()
{
Container cp = getContentPane();
code cde = new code(); // aki queria carregar o outro container de outra classe
this.setContentPane(cde); // e aki queria adicionar a este container
setTitle("Nome do Programa");
setSize( 800 , 600 );
setLocationRelativeTo(null);
setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}
public static void main (String args[])
{
new principal().setVisible(true);
}
}
a outra classe é assim, por enquanto ta abrindo outras classes em janelas separadas e fechando ela propria pelo dispose(); mas, pra evitar esse abre e fecha de janelas queria fazer isso ... adicionando todas elas a uma só nem q tivesse q brincar com vários setVisible(true) ou (false) dependendo da ação ou navegação nos containers. A outra classe é essa :
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.beans.*;
public class code extends JFrame
{
private JLabel Tlogin;
private JTextField login;
private JLabel Tpass;
private JTextField pass;
private JButton ok;
public code()
{
Container cde = getContentPane();
setLayout(new GridLayout(3,2));
Tlogin = new JLabel ("Digite seu nome de usuário:");
login = new JTextField (10);
login.setToolTipText("Digite seu login !");
Tpass = new JLabel ("Digite sua senha:");
pass = new JPasswordField (10);
pass.setToolTipText("Digite sua senha !");
ok = new JButton ("OK");
ok.setToolTipText("Clique para entrar !");
cde.add(Tlogin);
cde.add(login);
cde.add(Tpass);
cde.add(pass);
cde.add(ok);
EventoOk handler = new EventoOk();
ok.addActionListener(handler);
setTitle("Nome do programa");
setSize( 420 , 120 );
setLocationRelativeTo(null);
setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
// formatar melhor a janela, tenho q entender melhor o gridlayout
}
private class EventoOk implements ActionListener
{
public void actionPerformed (ActionEvent event)
{
String mostrar = ""; // abrindo variáveis só pra teste
String mostrar2 = "";
mostrar = login.getText(); // pega o login, senha e testa com o bd
mostrar2 = pass.getText();
JOptionPane.showMessageDialog(code.this, String.format("Nome de usuário: "+mostrar+"\nSenha: "+mostrar2)); // só pra ver se as entradas estão certas
new escolhe_empresa().setVisible(true);// após confimação de login e pass, abre a tela de escolha da base de dados
dispose();
}
}
public static void main (String args[])
{
new code().setVisible(true);
}
}
como podem ver ... ta tudo mto no inicio ainda ... só queria ver como faço nessas duas q ai eu consigo implementar nas outras... consegui passar claramente minha dúvida ? Alguem pode me ajudar ?!
P.S: tem mais uma coisa... fazendo deste modo q eu coloquei ai emcima ... ta compilando e talz, mas quando vai rodar da uma excessão: "Exception in thread "main" java.lang.IllegalArgumentException: adding a window to a container", q eu estaria querendo adicionar uma janela a um container ... :cry:
Desde ja, mto obrigado !