Comparação de duas Strings com if

Boa tarde.

Estou tendo problemas em comparar duas Strings no if.

se nego a comparação sempre roda… é uma verificação de senha para rodar um programa externo… coloquei umas janelas para ver se bate as strings, e bate mas não roda… se nego SÓ roda…

será que alguém vê uma luz?

[code]
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
// TODO add your handling code here:

    String gabarito = "senha";
    String texto = senha.getText(); //senha é um campo de senha
    JOptionPane.showMessageDialog(null,"Variável TEXTO :" + texto);
    JOptionPane.showMessageDialog(null,"Variável GABARITO :" + gabarito);
    if (gabarito == texto){
        JOptionPane.showMessageDialog(null,"IF IGUALADO");
        try {
            Runtime.getRuntime().exec("c:/cop-voco/cop-voco.exe");
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        
    }
    else {
        JOptionPane.showMessageDialog(null,"SENHA INCORRETA!");
    }
}//GEN-LAST:event_jButton1ActionPerformed[/code]

problema tosco mas não vi onde está errado…

obrigado pela atenção de todos!

opa, blz?

quando vc compara dois objetos usando o operador ==, vc esta na verdade comparando o conteudo das variaveis de referencia desse objeto, para comparar o valor das String vc tem q usar o metodo .equals()

Mas então…

Eu queria comparar se o que foi digitado na caixa de password é o mesmo do que o conteúdo da variável gabarito:

String gabarito = "senha";

E ae,

Isso que você quer testar tem quer ser feito com o metodo equals() como disse o Wollokow.

Faça isso da seguinte forma:

Ao invés de fazer

if(gabarito == texto)

Você faz

if(gabarito.equals(texto))

Tente isso que provavelmente dará certo.

Valeu galera!
Sempre aprendo mais uma aqui!

Se não quiser se preocupar com letras maiusculas ou minusculas use:

if(gabarito.equalsIgnoreCase(texto))