Acho que meu if nao ta funcionando!

Pessoal,

Estou fazendo um programinha com paineis, botoes, etc para aprender.
Apos clicar em um botao, o programa deve pegar o texto digitado em uma JTextField e comparar com um variavel String se o texto digitado é igual ao texto dessa String. Se sim ele imprime “Igual” se não ele imprime “Diferente”.

Problema é que se for digitado o mesmo que esta atribuido para a String ele imprime “Diferente”…

Aí vai o código:

[code]import javax.swing.;
import java.awt.
;
import java.awt.event.*;

public class CJanela extends JFrame {

private JTextField fieldNome = new JTextField(10);
private JButton botaoVerifica = new JButton("Verificar");
private JButton botaoSair = new JButton("Sair");
private JPanel painelNome;
private JPanel painelBotoes;
private JLabel labelNome = new JLabel("Nome: ");


public CJanela() {
	super("Verificador de Nome");
	setSize(350, 150);
	setLocation(300, 200);
	setVisible(true);

	painelNome = new JPanel(new FlowLayout(FlowLayout.LEFT));

	painelNome.add(labelNome);
	painelNome.add(fieldNome);


	TratamentoVerificador manipulador = new TratamentoVerificador();
	painelBotoes = new JPanel(new FlowLayout(FlowLayout.RIGHT));
	botaoVerifica.addActionListener(manipulador);
	botaoSair.addActionListener(manipulador);
	painelBotoes.add(botaoVerifica);
	painelBotoes.add(botaoSair);

	Container areaConteudo = getContentPane();
	areaConteudo.setLayout(new BorderLayout());

	areaConteudo.add(painelNome, BorderLayout.NORTH);
	areaConteudo.add(painelBotoes, BorderLayout.SOUTH);

}

class TratamentoVerificador implements ActionListener {
	public void actionPerformed(ActionEvent e) {

		if (e.getSource() == botaoVerifica) {
			
			String nomeVerificar = "andre";
			String nome = fieldNome.getText();
			

			if (nomeVerificar == nome) {

				System.out.println("igual");

			}else{
				System.out.println("diferente");
				
			}

		}

		if (e.getSource() == botaoSair) {
			System.exit(0);
		}

	}
}

}[/code]

O que ta errado?

Abraços

Ao invés de

if (nomeVerificar == nome) {  

use:

if (nomeVerificar.equals(nome) ) {  

Maravilha!
Funcionou… muito obrigado cara

Deixa eu tentar entender… usar == é mais apropriado para variaveis do tipo int ou double certo?
Por isso nao estava funcionando?

Valeu msmo!!!

Cara, tenta comparar a tua string com o que vem to jtextfield usando equals em vez de == ok?

se nao for isso, fala ai que analiso denovo o codigo.

flw

Seu erro está aqui:

if (nomeVerificar == nome) {  

String é uma classe, para obter o efeito que você quer, utilize:

if (nomeVerificar.equals(nome)) {  

Edit: desculpa aí pessoal, mosqueei e não vi as mensagens anteriores…

Galera muito rapida aqui!!!

Valeu mesmo!!! Errei e aprendi com meu erro…

Maravilha, fica facil aprender assim

Abraços e muito obrigado!

hehe, pessoal é rapido mesmo hein, kkk
tbm ja errei isso, agora nao esqueço mais, comparar String .equals()

Andre,

Só para esclarecer, == compara a referência dos objetos(Verifica se é o mesmo objeto no heap). Já o método equals (que vem da classe Object) verifica
se os dois objetos possuem conteúdo significativamente iguais, por isto, use equals.

Abraço

assim so um detalhe que achei engracado ao ler o titulo do topico. Bom o if ele funciona normalmente, mais vc pode ter implemenado de forma que nao atende ao que vc pretende.

:smiley: