JTextField

7 respostas
Z

como que eu faço pra saber se o valor que a pessoa digitou foi ''X" ou “O” dentro de um JTextField
por favor me deem um exemplo…

7 Respostas

douglaskd
ze_rodolfo:
como que eu faço pra saber se o valor que a pessoa digitou foi ''X" ou "O" dentro de um JTextField por favor me deem um exemplo..
if(seuTextField.getText().equals("X"))
{

//digitou X
}
A

veja se é isso que está procurando:


http://www.guj.com.br/java/293586-erro-no-codigo#1557358

Z

ainda não deu certo :confused:
eu quero fazer esta comparação, mas não ta dando certo :frowning:
será que alguém pode me dar um help??

quad1 = quadrado1.getText();
if(quad1.getText().equals("X") || quad1.getText().equals("O")){
	JOptionPane.showMessageDialog(null, "Valor Inválido");
}
H

Tente o seguinte:

quad1 = quadrado1.getText();  //notar que quad1 tem que ser do tipo String
if(quad1.equals("X") || quad1.equals("O")){  //não usar o getText() aqui... 
    JOptionPane.showMessageDialog(null, "Valor Inválido");  
}
Z

obrigado deu certo, mas como eu só quero que eles me dêem valores como X ou O entao eu coloquei assim:
PS: quad1 já estava como String

quad1 = quadrado1.getText();  //notar que quad1 tem que ser do tipo String  
if(!quad1.equals("X") || !quad1.equals("O")){  //não usar o getText() aqui...   
    JOptionPane.showMessageDialog(null, "Valor Inválido");    
}
Z

agr eu estou com um erro de “duplicidade” não sei se este seria o nome, mas, acontece que quando eu clico no botão para checar se os dados estão corretos, ele acaba dizendo que estã errado, e apaga o valor do quadrado, eu não entendi, será que alguém pode me dar alguma dica?

//quadrado 1
						if((!quad1.equals("X") || !quad1.equals("O")) && !quad1.equals("")){
							JOptionPane.showMessageDialog(null, "Valor Inválido");
							quadrado1.setText("");
							quad1 = quadrado1.getText();
							if(quad1.equals("")){
								quadrado1.setEditable(true);
							}
						}
						//quadrado 2
						if((!quad2.equals("X") || !quad2.equals("O")) && !quad2.equals("")){
							JOptionPane.showMessageDialog(null, "Valor Inválido");
							quadrado2.setText("");
							quad2 = quadrado2.getText();
							if(quad2.equals("")){
								quadrado2.setEditable(true);
							}
						}
						//quadrado 3
						if((!quad3.equals("X") || !quad3.equals("O")) && !quad3.equals("")){
							JOptionPane.showMessageDialog(null, "Valor Inválido");
							quadrado3.setText("");
							quad3 = quadrado3.getText();
							if(quad3.equals("")){
								quadrado3.setEditable(true);
							}
						}
H

Olha, se você deseja que sejam marcados como inválidos os valores que não são nem “” (String vazia), nem “X” (maiúscula), nem “O” (também maiúscula), deveria tentar:

if (!quad1.equals("X") && !quad1.equals("O") && !quad1.equals(""))

A estrutura é válida para cada um dos 3 quadrados. Se você quer algo diferente, pode adaptar a expressão conforme a necessidade. Por exemplo, na expressão acima, o valor “” (vazio) não é considerado inválido, e as instruções no interior do if não serão executadas para esse valor. Isso equivale a aceitar “” como um valor válido, mas se isso está certo ou não cabe a você decidir, pois depende do contexto.

Lembrar que estou testando apenas X e O maiúsculos. Caso deseje testar também minúsculas, mude para quad1.equalsIgnoreCase(“X”) - e faça a mesma alteração para “O”. (Pesquise o método equalsIgnoreCase(), da classe String)

Quanto ao comportamento “misterioso” de seus TextFields, recomendo que você dê uma pesquisada sobre JTextField no Google. Aparentemente você está tentando adaptar o código para as suas necessidades, mas não está conseguindo entender muito bem o que ele faz. Por isso acho que você deve parar um pouco e dar uma leitura em algum tutorial sobre JTextField. Vai ser muito útil, garanto.

Criado 29 de julho de 2013
Ultima resposta 30 de jul. de 2013
Respostas 7
Participantes 4