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…
JTextField
7 Respostas
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
}
veja se é isso que está procurando:
ainda não deu certo 
eu quero fazer esta comparação, mas não ta dando certo 
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");
}
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");
}
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");
}
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);
}
}
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.