Calculadora com tela de login. {DUVIDAS}

Olá, pessoal, eu estou com um trabalho para fazer, mas estou com algumas duvidas, eu tenho que montar uma calculadora, com uma tela de login, o senha ja é definida dentro do código, pós estamos no basico ainda. Eu preciso, que assim que eu executar o programa, ele feche a tela de login e abre a calculadora. A tela de login eu ja fiz e tenho pronta, e a calculadora tb, como q eu faria para fazer isso?

Ah, a minha calculadora, ela está com alguns problemas, quando eu tento fazer uma operão com mais de tres valores, esta dando resultados diferentes, e t quando eu tento fazer uma operação com um resultado, tb esta dando problema.

Alguem ae poderia me ajundar?

ccódigo da tela de login:

[code]import java.awt.;//importa as classes do pacote “awt”
import java.awt.event.
;//importa as classes do pacote “event”
import javax.swing.*;//importa as classes do pacote “swing”

class Exemplo0905 extends JFrame implements ActionListener{//inicia a classe herdando métodos de “JFrame” e implementando a interface “ActionListener”
JLabel label1,label2;//declara os objetos “JLabel”
JTextField t1;//declara o objeto “t1” da classe “JTextField”
JPasswordField p1;//declara o objeto “p1” da classe “JPasswordField”

public static void main(String args[]){//inicia o método principal
	JFrame janela = new Exemplo0905();//instancia o objeto "janela" a partir da classe atual "Exemplo0905"
	janela.setUndecorated(true);//retira a decoração da janela
	janela.getRootPane().setWindowDecorationStyle(JRootPane.FRAME);//configura a decoração da janela para ser a padrão JAVA
	janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//configura a operação de fechar ao clicar no botão do canto superior direito da janela
	janela.setVisible(true);//configura a janela para ser apresentada
}//fecha o método principal

Exemplo0905(){//cria o método construtor
	setTitle("Verifica Senha");//configura o título da janela
	setBounds(200,50,350,85);//configura o tamanho da janela e posição dela na tela
	getContentPane().setBackground(new Color(150,150,150));//configura a cor de fundo da janela
	getContentPane().setLayout(new GridLayout(2,2));//configura o layout da janela
	label1 = new JLabel("Digite a Senha:");//instancia o objeto "label1" e configura o texto que será apresentado
	label1.setForeground(Color.black);//configura a cor da fonte em "label1"
	label2 = new JLabel("Validação:");//instancia o objeto "label2" e configura o texto que será apresentado 
	label2.setForeground(Color.black);//configura a cor da fonte em "label2"
	label1.setFont(new Font("",Font.BOLD,14));//configura a fonte para ser apresentada em negrito e com tamanho 14
	label2.setFont(new Font("",Font.BOLD,14));
	t1 = new JTextField();//instancia a caixa de texto "t1"
	t1.setForeground(Color.red);//cor da fonte na caixa de texto
	p1 = new JPasswordField();//instancia o objeto "p1"
	p1.setEchoChar("?");//configura o caracter que será apresentado quando o usuário digitar alguma coisa em "p1"
	p1.addActionListener(this);//registra "p1"
	getContentPane().add(label1);//adiciona o label1 na janela
	getContentPane().add(p1);//adiciona "p1" Ã  janela
	getContentPane().add(label2);//adiciona "label2" Ã  janela
	getContentPane().add(t1);//adiciona "t1" Ã  janela
}//fecha o método construtor

public void actionPerformed(ActionEvent e){//inicia o método "actionPerformed" (ele é obrigatório já que estamos implementando a interface ActionListener na declaração da classe acima.
	if(new String(p1.getPassword()).equals("JAVA"))//se a senha digitada for igual a palavra "JAVA" em maiúsculas
		t1.setText("Senha Valida");//escreve a mensagem em "t1"
	else//senão
		t1.setText("Senha Invalida");//escreve essa mensagem em "t1"
}//fecha o método

}//fecha a classe
[/code]

Codigo da calculadora:

[code]import java.awt.;//importa as classes do pacote “awt”
import java.awt.event.
;//importa as classes do pacote “event”
import javax.swing.*;//importa as classes do pacote “swing”

class Exemplo0902 extends JFrame implements ActionListener{
JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bsoma,bmult,bdivi,bsub,bigual,blimpa,bponto;
JTextField tela;
private char op,opant;
private int op1=0;
private String num;
private String numtela="";
private double ac=0, a=0,b=0,resultado=0;

public static void main(String args[]){   
    JFrame janela = new Exemplo0902();   
    janela.setUndecorated(true);   
    janela.getRootPane().setWindowDecorationStyle(JRootPane.FRAME);   
    janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   
    janela.setVisible(true);   
}   

Exemplo0902(){   
    setTitle("Calculadora");   
    setBounds(200,200,200,200);   
    setLocation(100,100);   
    getContentPane().setBackground(Color.black);   
    getContentPane().setLayout(new FlowLayout());       
    b1 = new JButton("1");   
    b1.addActionListener(this);   
    b2 = new JButton("2");   
    b2.addActionListener(this);   
    b3 = new JButton("3");   
    b3.addActionListener(this);   
    b4 = new JButton("4");   
    b4.addActionListener(this);   
    b5 = new JButton("5");   
    b5.addActionListener(this);   
    b6 = new JButton("6");   
    b6.addActionListener(this);   
    b7 = new JButton("7");   
    b7.addActionListener(this);   
    b8 = new JButton("8");   
    b8.addActionListener(this);   
    b9 = new JButton("9");   
    b9.addActionListener(this);   
    b0 = new JButton("0");   
    b0.addActionListener(this);   
    bsoma = new JButton("+");   
    bsoma.addActionListener(this);   
    bsub = new JButton("-");   
    bsub.addActionListener(this);   
    bmult = new JButton("x");   
    bmult.addActionListener(this);   
    bdivi = new JButton("/");   
    bdivi.addActionListener(this);   
    blimpa = new JButton("C");   
    blimpa.addActionListener(this);   
    bigual = new JButton("=");   
    bigual.addActionListener(this);   
    bponto = new JButton(".");   
    bponto.addActionListener(this);   
    tela = new JTextField(10);   

    getContentPane().add(tela);   
    getContentPane().add(blimpa);   
    getContentPane().add(b9);   
    getContentPane().add(b8);   
    getContentPane().add(b7);   
    getContentPane().add(bdivi);   
    getContentPane().add(b4);   
    getContentPane().add(b5);   
    getContentPane().add(b6);   
    getContentPane().add(bmult);   
    getContentPane().add(b1);   
    getContentPane().add(b2);   
    getContentPane().add(b3);   
    getContentPane().add(bsub);   
    getContentPane().add(b0);   
    getContentPane().add(bponto);   
    getContentPane().add(bigual);   
    getContentPane().add(bsoma);   
       
}   
public void actionPerformed(ActionEvent e) {   
    if (e.getSource() == blimpa){   
        tela.setText("");   
        numtela="";
		op1=0;
		ac=0;
		resultado=0;
    }
	opant=op;
    if ((e.getSource() == bsoma) || (e.getSource() == bsub) || (e.getSource() == bmult) || (e.getSource() == bdivi) ){   
         try{
			a = Double.parseDouble( numtela );
			if(op1==0) ac = a;
			else{
			if (opant=='+') ac=ac+b;
			if (opant=='*') ac=ac*b;
			if (opant=='/') ac=ac/b;
			if (opant=='-') ac=ac-b;
			}
            if (e.getSource() == bsoma){   

                tela.setText("");   
                numtela="";   
                op = '+';
				op1++;
				System.out.println("ac="+ac);
				System.out.println("result="+resultado);
				System.out.println("a="+a);
            }   
            else if (e.getSource() == bsub){   


                tela.setText("");   
                numtela="";   
                op = '-';
				op1++; 
				System.out.println("ac="+ac);
				System.out.println("result="+resultado);
				System.out.println("a="+a);					
            }     
            else if (e.getSource() == bdivi){   


                tela.setText("");   
                numtela="";   
                op = '/';
				op1++;
				System.out.println("ac="+ac);
				System.out.println("result="+resultado);
				System.out.println("a="+a);					
            }     
            else if (e.getSource() == bmult){   


                tela.setText("");   
                numtela="";           
                op = '*';  
				op1++;
				System.out.println("ac="+ac);
				System.out.println("result="+resultado);
				System.out.println("a="+a);					
            }
	b=a;   
        }   
        catch(NumberFormatException erro){   
            tela.setText("Erro");   
            return;   
        }   
    }   
    if ((e.getSource() == b1)||(e.getSource() == b2)||(e.getSource() == b3)|| (e.getSource() == b4)||(e.getSource() == b5)|| (e.getSource() == b6)||(e.getSource() == b7)||(e.getSource() == b8)||(e.getSource() == b9)|| (e.getSource() == b0)||(e.getSource() == bponto)){   
        if (e.getSource() == b1) num = "1";   
      
        else if (e.getSource() == b2) num = "2";   

        else if (e.getSource() == b3) num = "3";   

        else if (e.getSource() == b4) num = "4";   

        else if (e.getSource() == b5) num = "5";   

        else if (e.getSource() == b6) num = "6";   
   
        else if (e.getSource() == b7) num = "7";   

        else if (e.getSource() == b8) num = "8";   

        else if (e.getSource() == b9) num = "9";   

        else if (e.getSource() == b0) num = "0";   
   
    else if (e.getSource() == bponto) num = ".";   
    numtela=numtela+num;   
    tela.setText(""+numtela);   

    }   
	
    if (e.getSource() == bigual){   
        try{
            if (op == '+'){   
                a = Double.parseDouble( numtela );
				if(op1==0) ac = a;
				else {
					resultado = ac + a;
					ac = resultado;
				}
                tela.setText(""+ac);  
				System.out.println("ac="+ac);
				System.out.println("result="+resultado);
				System.out.println("a="+a);					
            }   
            else if (op == '-'){   
                a = Double.parseDouble( numtela );   
                if(op1==0) ac = a;
				else {
					resultado = ac - a;
					ac = resultado;
				}   
                tela.setText(""+resultado);
				System.out.println("ac="+ac);
				System.out.println("result="+resultado);
				System.out.println("a="+a);					
            }     
            else if (op == '/'){   
                a = Double.parseDouble( numtela );   
                if(op1==0) ac = a;
				else {
					resultado = ac / a;
					ac = resultado;
				}  
                tela.setText(""+resultado); 
				System.out.println("ac="+ac);
				System.out.println("result="+resultado);
				System.out.println("a="+a);					
            }     
            else if (op =='*'){   
                a = Double.parseDouble( numtela );   
                if(op1==0) ac = a;
				else {
					resultado = ac * a;
					ac = ac * a;
				}  
                tela.setText(""+resultado);
				System.out.println("ac="+ac);
				System.out.println("result="+resultado);
				System.out.println("a="+a);					
            }   
            numtela = tela.getText();   
            resultado = 0;
        }
        catch(NumberFormatException erro){   
            tela.setText("Erro");   
            return;   
        }   
	}
}

} [/code]

up 8)