Frame seguido de Frame

Gente não sei se vou saber explicar minha duvida, porém irei tentar, estou estudando interface gráfica e to inventando uns projetos meios loucos apenas para treinar, to criando o seguinte projeto, Jate nho uma calculadora feita que fiz essa semana, então criei mais 2 frames … um para cadastro de login e outro para autenticação do login e senha, após a autenticação se passar, abre a calculadora, essa é minha intenção, porém estou com alguns problemas de organização e tambem de código, criei os 3 frames no mesmo projeto, um em cada package, meu professor semana passada disse um termo ao qual não me recordo que define a programação da seguinte forma, código separado de interface, porém ainda não estou usando essa aplicação, pois não consegui fazer isso ainda =D, então gente, quando executo um dos frames, sempre ele executa o de Autenticação, coloco para executar o de cadastro ele executa o de Autenticação, como faço para ele executar o que estou pedindo, vou mostrar meus código e gostaria que vocÊs podessem avaliar e me mostrar os erros e pontos a serem melhorados, obs: não sou expert em java então gostaria que tivessem cuidado com os termos usados =D

Cadastro Login e Senha

package CadastroLogin;

import javax.swing.JOptionPane;


public class Cadastro_Login_Senha extends javax.swing.JPanel {

    String login = "";
    String senha = "";
   
    public Cadastro_Login_Senha() {
        initComponents();
    }

   
   + Generated Code                  

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        login = texto1.getText();
        senha = new String (texto2.getPassword());
        JOptionPane.showMessageDialog(null, "Cadastro efetuado com sucesso!");
    }                                        

    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JTextField texto1;
    private javax.swing.JPasswordField texto2;
    // End of variables declaration                   
}

Frame Cadastro


package CadastroLogin;

import javax.swing.JFrame;




public class CadastroFrame extends JFrame {
    
    
    CadastroFrame(){
    super ("Cadastro Login");
    Cadastro_Login_Senha c = new Cadastro_Login_Senha();
    this.add(c);
    this.setVisible(true);
    this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    this.setLocationRelativeTo(null);
    
    
    
    
}
}

CadastroMain


package CadastroLogin;


public class CadastroMain {
    
    public static void main (String args[]){
        
        CadastroFrame f = new CadastroFrame();

    }
    
}

Autenticação Login e Senha



package login_e_senha;

import calculadorainterfacemelhorada.MainCalc;
import javax.swing.JOptionPane;


public class Janela extends javax.swing.JPanel {
    
    String login = "8577607", senha = "yuri060392";
    
    public Janela() {
        initComponents();
    }

    
  + Generated Code                   

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
       
        
        if (texto1.getText() == login && new String (pass1.getPassword()) == senha){
            
            new MainCalc();
            
        }
        
       // String login = texto1.getText();
       // String senha = new String (pass1.getPassword());
        
        
    }                                        

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
       // System.exit(0);
        texto1.setText("");
        pass1.setText("");
    }                                        

   
    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPasswordField pass1;
    private javax.swing.JTextField texto1;
    // End of variables declaration                   
}

Não estou conseguindo fazer com que ao apertar o botão OK que no caso é o JButton1 ele verifique a senha e chame o outro frame

Calculadora


package calculadorainterfacemelhorada;

import javax.swing.JOptionPane;


public class JanelaCalc extends javax.swing.JPanel {

   double /*numero1,*/ numDouble;
   int operacao;
   
    public JanelaCalc() {
        initComponents();
    }

    
    + Generated Code                    

    private void botao6ActionPerformed(java.awt.event.ActionEvent evt) {                                       
        try {
        String num = texto.getText();
        texto.setText(num + "6");
          }
       catch (Exception e) {
           JOptionPane.showMessageDialog(null, "Digite Apenas Números", "ERRO", JOptionPane.ERROR_MESSAGE);
       }
    }                                      

    private void botaopontoActionPerformed(java.awt.event.ActionEvent evt) {                                           
       try {
        String num = texto.getText();
        texto.setText(num + ".");
          }
       catch (Exception e) {
           JOptionPane.showMessageDialog(null, "Digite Apenas Números", "ERRO", JOptionPane.ERROR_MESSAGE);
       }
    }                                          

    private void botao1ActionPerformed(java.awt.event.ActionEvent evt) {                                       
       try {
        String num = texto.getText();
       texto.setText(num + "1");
       }
       catch (Exception e) {
           JOptionPane.showMessageDialog(null, "Digite Apenas Números", "ERRO", JOptionPane.ERROR_MESSAGE);
       }
    }                                      

    private void botao2ActionPerformed(java.awt.event.ActionEvent evt) {                                       
        try {
        String num = texto.getText();
        texto.setText(num + "2");
         }
       catch (Exception e) {
           JOptionPane.showMessageDialog(null, "Digite Apenas Números", "ERRO", JOptionPane.ERROR_MESSAGE);
       }
    }                                      

    private void botao3ActionPerformed(java.awt.event.ActionEvent evt) {                                       
       try {
        String num = texto.getText();
        texto.setText(num + "3");
         }
       catch (Exception e) {
           JOptionPane.showMessageDialog(null, "Digite Apenas Números", "ERRO", JOptionPane.ERROR_MESSAGE);
       }
    }                                      

    private void botao4ActionPerformed(java.awt.event.ActionEvent evt) {                                       
        try {
        String num = texto.getText();
        texto.setText(num + "4");
         }
       catch (Exception e) {
           JOptionPane.showMessageDialog(null, "Digite Apenas Números", "ERRO", JOptionPane.ERROR_MESSAGE);
       }
    }                                      

    private void botao5ActionPerformed(java.awt.event.ActionEvent evt) {                                       
        try {
        String num = texto.getText();
        texto.setText(num + "5");
         }
       catch (Exception e) {
           JOptionPane.showMessageDialog(null, "Digite Apenas Números", "ERRO", JOptionPane.ERROR_MESSAGE);
       }
    }                                      

    private void botao7ActionPerformed(java.awt.event.ActionEvent evt) {                                       
       try {
        String num = texto.getText();
        texto.setText(num + "7");
         }
       catch (Exception e) {
           JOptionPane.showMessageDialog(null, "Digite Apenas Números", "ERRO", JOptionPane.ERROR_MESSAGE);
       }
    }                                      

    private void botao8ActionPerformed(java.awt.event.ActionEvent evt) {                                       
        try {
        String num = texto.getText();
        texto.setText(num + "8");
         }
       catch (Exception e) {
           JOptionPane.showMessageDialog(null, "Digite Apenas Números", "ERRO", JOptionPane.ERROR_MESSAGE);
       }
    }                                      

    private void botao9ActionPerformed(java.awt.event.ActionEvent evt) {                                       
        try {
        String num = texto.getText();
        texto.setText(num + "9");
         }
       catch (Exception e) {
           JOptionPane.showMessageDialog(null, "Digite Apenas Números", "ERRO", JOptionPane.ERROR_MESSAGE);
       }
    }                                      

    private void botaodivActionPerformed(java.awt.event.ActionEvent evt) {                                         
       try {
        String numero = texto.getText();
       numDouble = Double.parseDouble(numero);
       // soma = 1
       operacao = 4;
       texto.setText("");
         }
       catch (Exception e) {
           JOptionPane.showMessageDialog(null, "Digite Apenas Números", "ERRO", JOptionPane.ERROR_MESSAGE);
       }
    }                                        

    private void botaomultActionPerformed(java.awt.event.ActionEvent evt) {                                          
       try {
        String numero = texto.getText();
       numDouble = Double.parseDouble(numero);
       // soma = 1
       operacao = 3;
       texto.setText("");
         }
       catch (Exception e) {
           JOptionPane.showMessageDialog(null, "Digite Apenas Números", "ERRO", JOptionPane.ERROR_MESSAGE);
       }
    }                                         

    private void botaosubActionPerformed(java.awt.event.ActionEvent evt) {                                         
       try {
        String numero = texto.getText();
       numDouble = Double.parseDouble(numero);
       // soma = 1
       operacao = 2;
       texto.setText("");
         }
       catch (Exception e) {
           JOptionPane.showMessageDialog(null, "Digite Apenas Números", "ERRO", JOptionPane.ERROR_MESSAGE);
       }
    }                                        

    private void botaosomaActionPerformed(java.awt.event.ActionEvent evt) {                                          
       try {
        String numero = texto.getText();
       numDouble = Double.parseDouble(numero);
       // soma = 1
       operacao = 1;
       texto.setText("");
         }
       catch (Exception e) {
           JOptionPane.showMessageDialog(null, "Digite Apenas Números", "ERRO", JOptionPane.ERROR_MESSAGE);
       }
    }                                         

    private void botaoigualActionPerformed(java.awt.event.ActionEvent evt) {                                           
       
        String numString = texto.getText();
        double numD = Double.parseDouble(numString);
        if (operacao == 1){
            double resultado = numDouble + numD;
            String resultadoString = String.valueOf(resultado);
            texto.setText(resultadoString);
        }
    
        else if (operacao == 2){
            double resultado = numDouble - numD;
            String resultadoString = String.valueOf(resultado);
            texto.setText(resultadoString);
    
        }  else if (operacao == 3){
            double resultado = numDouble * numD;
            String resultadoString = String.valueOf(resultado);
            texto.setText(resultadoString);
    
        }  else if (operacao == 4){
            double resultado = numDouble / numD;
            String resultadoString = String.valueOf(resultado);
            texto.setText(resultadoString);
    
        }
        
        
    }                                          

    private void botao0ActionPerformed(java.awt.event.ActionEvent evt) {                                       
        try {
        String num = texto.getText();
        texto.setText(num + "8");
         }
       catch (Exception e) {
           JOptionPane.showMessageDialog(null, "Digite Apenas Números", "ERRO", JOptionPane.ERROR_MESSAGE);
       }
    }                                      

    private void limparActionPerformed(java.awt.event.ActionEvent evt) {                                       
       texto.setText("");
      // numero1 = 0;
       numDouble = 0;
    }                                      

    // Variables declaration - do not modify                     
    private javax.swing.JButton botao0;
    private javax.swing.JButton botao1;
    private javax.swing.JButton botao2;
    private javax.swing.JButton botao3;
    private javax.swing.JButton botao4;
    private javax.swing.JButton botao5;
    private javax.swing.JButton botao6;
    private javax.swing.JButton botao7;
    private javax.swing.JButton botao8;
    private javax.swing.JButton botao9;
    private javax.swing.JButton botaodiv;
    private javax.swing.JButton botaoigual;
    private javax.swing.JButton botaomult;
    private javax.swing.JButton botaoponto;
    private javax.swing.JButton botaosoma;
    private javax.swing.JButton botaosub;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JButton limpar;
    private javax.swing.JTextField texto;
    // End of variables declaration                   
}

Main Calculadora


package calculadorainterfacemelhorada;


public class MainCalc {
    
    public static void main (String args[]){
        
        FrameCalc f = new FrameCalc();
        
    }
}

Gente é uma confusão grande, mas espero que alguem consiga me ajudar, agradeço desde já

Cara vc ta tentando dar new em uma classe com a intenção de que a mesma execute o método main. Isso não irá acontecer.
Ou vc dar new direto na classe da calculadora

ou cria um construtor nesse classe que chame a classe da calculadora(algo meio sem sentido, mas…).

public mainCalc(){ new Calculadora(); }

Abraços!