Os arquivos em java são estes:
Teste.java
[code]package teste;
import java.awt.;
import java.awt.event.;
import javax.swing.*;
public class Teste extends JFrame {
private JTextField tfLogin;
private JLabel lbSenha;
private JLabel lbLogin;
private JButton btLogar;
private JButton btCancelar;
private JPasswordField pfSenha;
private static Teste frame;
public Teste() {
inicializarComponentes();
definirEventos();
}
private void inicializarComponentes() {
setTitle("Principal");
setBounds(0,0,250,200);
setLayout(null);
tfLogin = new JTextField(5);
pfSenha = new JPasswordField(5);
lbSenha = new JLabel("Senha:");
lbLogin = new JLabel("Login:");
btLogar = new JButton("Logar");
btCancelar = new JButton("Cancelar");
tfLogin.setBounds(100, 30, 120, 25);
lbLogin.setBounds(30, 30, 80, 25);
lbSenha.setBounds(30, 75, 80 , 25);
pfSenha.setBounds(100, 75, 120, 25);
btLogar.setBounds(20, 120, 100, 25);
btCancelar.setBounds(125, 120, 100, 25);
add(tfLogin);
add(lbSenha);
add(lbLogin);
add(btLogar);
add(btCancelar);
add(pfSenha);
}
private void definirEventos() {
btLogar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String senha = String.valueOf(pfSenha.getPassword());
if(tfLogin.getText().equals("teste") && senha.equals("teste")){
frame.setVisible(false);
Principal.abrir();
}
else{
JOptionPane.showMessageDialog(null, "Login ou senha incorretoas!");
}
}
});
btCancelar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
frame = new Teste();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Dimension tela = Toolkit.getDefaultToolkit().getScreenSize();
frame.setLocation((tela.width - frame.getSize().width) / 2,
(tela.height - frame.getSize().height) / 2);
frame.setVisible(true);
}
});
}
}[/code]
Principal.java
[code]package teste;
import java.awt.;
import java.awt.event.;
import javax.swing.*;
public class Principal extends JFrame{
private Container contentPane;
private JMenuBar mnBarra;
private JMenu mnArquivo, mnExemplos;
private JMenuItem miSair, miBotao, miJanela2;
public Principal() {
inicialixarComponentes();
definirEventos();
}
private void inicialixarComponentes() {
setTitle("Menu Principal");
setBounds(0, 0, 800, 600);
contentPane = getContentPane();
mnBarra = new JMenuBar();
mnArquivo = new JMenu("Arquivo");
mnArquivo.setMnemonic('A');
mnExemplos = new JMenu("Teste");
mnExemplos.setMnemonic('E');
miSair = new JMenuItem("Sair", new ImageIcon("sair.png"));
miSair.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_S, ActionEvent.ALT_MASK));
miBotao = new JMenuItem("Janela");
miJanela2 = new JMenuItem("Janela2");
mnExemplos.add(miBotao);
mnExemplos.add(miJanela2);
mnArquivo.add(miSair);
mnBarra.add(mnArquivo);
mnBarra.add(mnExemplos);
setJMenuBar(mnBarra);
}
private void definirEventos() {
miSair.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
miBotao.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Janela botao = new Janela();
contentPane.removeAll();
contentPane.add(botao);
contentPane.validate();
}
});
miJanela2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Janela2 Janela2 = new Janela2();
contentPane.removeAll();
contentPane.add(Janela2);
contentPane.validate();
}
});
}
public static void abrir() {
Principal frame = new Principal();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Dimension tela = Toolkit.getDefaultToolkit().getScreenSize();
frame.setLocation((tela.width - frame.getSize().width) / 2,
(tela.height - frame.getSize().height) / 2);
frame.setVisible(true);
}
} [/code]
Janela.java
[code]package teste;
import java.awt.*;
import javax.swing.JInternalFrame;
public class Janela extends JInternalFrame{
public Janela() {
inicializarComponentes();
}
private void inicializarComponentes() {
setTitle("Usando Frame Interno");
setSize(300,100);
setResizable(true);
setClosable(true);
setMaximizable(true);
setIconifiable(true);
setBackground(Color.orange);
setVisible(true);
}
}
[/code]
Janela2.java
[code]package teste;
import java.awt.event.;
import javax.swing.;
public class Janela2 extends JPanel {
private JLabel lbSexo;
private JButton btVerificar;
private JRadioButton rbMasculino, rbFeminino;
private ButtonGroup buttonGroup;
public Janela2() {
inicializarComponentes();
definirEventos();
}
private void inicializarComponentes() {
setLayout(null);
btVerificar = new JButton("Verificar");
rbMasculino = new JRadioButton("Masculino");
lbSexo = new JLabel("Selecione o sexo:");
rbFeminino = new JRadioButton("Feminino");
buttonGroup = new ButtonGroup();
buttonGroup.add(rbMasculino);
buttonGroup.add(rbFeminino);
btVerificar.setBounds(55, 105, 100, 20);
rbMasculino.setBounds(55, 45, 100, 25);
lbSexo.setBounds(55, 10, 105, 30);
rbFeminino.setBounds(55, 70, 100, 25);
rbMasculino.setSelected(true);
add(btVerificar);
add(rbMasculino);
add(lbSexo);
add(rbFeminino);
}
private void definirEventos() {
btVerificar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
if (rbMasculino.isSelected()) {
JOptionPane.showMessageDialog(null, "Masculino selecionado");
} else if (rbFeminino.isSelected()) {
JOptionPane.showMessageDialog(null, "Feminino selecionado");
}
}
});
}
}
[/code]
Então quando eu executo mostra a tela de login, depois abre uma tela se estiver certo o login e senha. No menu aperto em Teste e em janela e janela2. Tudo funciona menos o maximizar e minimizar do Janela.
Então para resolver esse problema fui em Principal.java e na linha 6 substitui Container por JDesktopPane e retirei a linha 19 e adicionei: contentPane = new JDesktopPane();
setContentPane(contentPane);
…
Então testo e funciona o maximizar e minimizar do Janela, mas não funciona mais Janela2 e o Principal.java fica com uma tela em branco.
Como resolver isso?