Classes internas

7 respostas
cu_ringa
 galera, alguém sabe me dizer pq o arquivo compila legal, mas quando eu aperto eu executo  dando pau!!!,  sei que é nessa parte que esta  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]				
			}				
		}		
	}	
						
}

7 Respostas

cariocathi

qual exception q está sendo lançada ?

cu_ringa

É tanta exceção que eu não sei, nem quais são!!!

brlima
"cu_ringa":
É 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...

cu_ringa

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

brlima

Vai ver o erro ta na classe JanelaAdicionarSenha() que vc ta instanciando.

De resto ta certo…

fenrir

Para saber qual é o erro e onde ele está acontecendo é algo bem simples… :wink:

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

N

Funcionou blz aqui em casa! 8)

A única coisa que eu tirei foi:

JanelaAdicionarSenha jas = new JanelaAdicionarSenha(); e seus derivados

Criado 8 de janeiro de 2004
Ultima resposta 9 de jan. de 2004
Respostas 7
Participantes 5