Aí galera, alguém sabe me dizer pq o arquivo compila legal, mas quando eu aperto eu executo tá dando pau!!!, dó sei que é nessa parte que esta aí em destaque.
package janela;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import senha.*;
public class JanelaPrincipal extends JFrame{
private JMenuItem jmenu_item_sair, jmenu_item_add_cliente;
private JMenuItem jmenu_item_alterar_senha, jmenu_item_add_senha;
private final JDesktopPane jdesktop = new JDesktopPane();
public JanelaPrincipal(){
super("Contas ### Versão 1.0");
getContentPane().add(jdesktop);
JMenuBar jmenu_bar = new JMenuBar();
setJMenuBar(jmenu_bar);
JMenu jmenu_arquivo = new JMenu("Arquivo");
jmenu_arquivo.setMnemonic('A');
jmenu_item_add_cliente = new JMenuItem("Cliente");
jmenu_item_add_cliente.setMnemonic('C');
jmenu_item_sair = new JMenuItem("Sair");
jmenu_item_sair.setMnemonic('S');
jmenu_arquivo.add(jmenu_item_add_cliente);
jmenu_arquivo.add(jmenu_item_sair);
jmenu_bar.add(jmenu_arquivo);
JMenu jmenu_senha = new JMenu("Senha");
jmenu_senha.setMnemonic('S');
jmenu_item_alterar_senha = new JMenuItem("Alterar senha");
jmenu_item_alterar_senha.setMnemonic('A');
jmenu_item_add_senha = new JMenuItem("Adicionar senha");
jmenu_item_add_senha.setMnemonic('d');
jmenu_senha.add(jmenu_item_add_senha);
jmenu_senha.add(jmenu_item_alterar_senha);
jmenu_bar.add(jmenu_senha);
Handler handler = new Handler();
jmenu_item_sair.addActionListener(handler);
jmenu_item_add_senha.addActionListener(handler);
setSize(400, 400);
show();
addWindowListener(
new WindowAdapter(){
public void windowClosing(WindowEvent we){
System.exit(0);
}
}
);
}
public static void main(String args[]){
new JanelaPrincipal();
}
private class Handler implements ActionListener{
public void actionPerformed(ActionEvent e){
System.out.println("valeu");
if(e.getSource() == jmenu_item_sair)
System.exit(0);
else if(e.getSource() == jmenu_item_add_senha){
JInternalFrame frame = new JInternalFrame("Adicionar Operador", true, true, false, true);
Container c = frame.getContentPane();
JanelaAdicionarSenha jas = new JanelaAdicionarSenha();
frame.setSize(250, 150);
frame.setOpaque(true);
jdesktop.add(frame);
c.add(jas, BorderLayout.CENTER);
frame.show();
final JButton b2 = jas.getB2();
[size=18][color=darkblue]b2.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
if(e.getSource() == b2)
JOptionPane.showMessageDialog(null, e.getActionCommand());
}
}
);[/color]
[/size]
}
}
}
}
Classes internas
7 Respostas
qual exception q está sendo lançada ?
É tanta exceção que eu não sei, nem quais são!!!
É tanta exceção que eu não sei, nem quais são!!!!Eu comentei essas linhas ai e aki deu tudo certo...
JInternalFrame frame = new JInternalFrame("Adicionar Operador", true, true, false, true);
Container c = frame.getContentPane();
//JanelaAdicionarSenha jas = new JanelaAdicionarSenha();
frame.setSize(250, 150);
frame.setOpaque(true);
jdesktop.add(frame);
//c.add(jas, BorderLayout.CENTER);
frame.show();
//final JButton b2 = jas.getB2();
//color=darkblue]b2.addActionListener(
/*new ActionListener(){
public void actionPerformed(ActionEvent e){
if(e.getSource() == b2)
JOptionPane.showMessageDialog(null, e.getActionCommand());
}
}
);*/
tu deve tah chamando algum metodo que nao existe, ou tah nulo...
mas vc não pode tirar essa parte:
JanelaAdicionarSenha jas = new JanelaAdicionarSenha();
e seus derivados
já que isso aí vai ser colocado no frame interno, o problema é em:
b2.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
if(e.getSource() == b2)
JOptionPane.showMessageDialog(null, e.getActionCommand());
}
}
);
já que eu tou implementando um ActionListener e sua classe externa também implementa um ActionListener, e eu não sei se pode, eu acho que o erro tá aí, mas não sei como consertar.
valeu!!!
Vai ver o erro ta na classe JanelaAdicionarSenha() que vc ta instanciando.
De resto ta certo…
Para saber qual é o erro e onde ele está acontecendo é algo bem simples… 
Basta você olhar o “stack trace” e seguir as linhas que ele mostra. A primeira linha que faça parte do seu programa é a linha “defeituosa”.
Funcionou blz aqui em casa! 8)
A única coisa que eu tirei foi:
JanelaAdicionarSenha jas = new JanelaAdicionarSenha();
e seus derivados