Erro ao comparar JtextField [Resolvido]

22 respostas
viniciusgundim

Estou com o seguinte problema, estou querendo montar uma condição que se um campo estiver preenchido ele desabilita os outros, mais se estiver vazio ele deixa os outros habilitados, mais não estou conseguindo toda vez que faço ele só fica desabilitado msm o campos estando fazio ele deixa os outros desabilitados, estou usando um lostfocus para o metodo, segue o codigo logo abaixo:

if (cdv_jtf_dados_pessoais_ordem_servico.getText()!=("")){ 
             cdv_jcb_dados_pessoais_centro_custo.setEnabled(false);
             cdv_jtf_dados_pessoais_centro_custo.setEditable(false);
             cdv_jcb_dados_pessoais_elemento_gasto.setEnabled(false);
             cdv_jtf_dados_pessoais_elemento_gasto.setEnabled(false);
        
        }
             else if(cdv_jtf_dados_pessoais_ordem_servico.getText()==("")){
             cdv_jcb_dados_pessoais_centro_custo.setEnabled(true);
             cdv_jtf_dados_pessoais_centro_custo.setEditable(true);
             cdv_jcb_dados_pessoais_elemento_gasto.setEnabled(true);
             cdv_jtf_dados_pessoais_elemento_gasto.setEnabled(true);
             }

22 Respostas

vanderlanio

Qual ação vc esta colocando esse seu trecho de código ?

Scoobydoo
Erro Bem simples xD Voce não compara string com == fais assim
if (cdv_jtf_dados_pessoais_ordem_servico.getText().equals("")){ 
             cdv_jcb_dados_pessoais_centro_custo.setEnabled(true);
             cdv_jtf_dados_pessoais_centro_custo.setEditable(true);
             cdv_jcb_dados_pessoais_elemento_gasto.setEnabled(true);
             cdv_jtf_dados_pessoais_elemento_gasto.setEnabled(true);
        
        }
             else{
             cdv_jcb_dados_pessoais_centro_custo.setEnabled(false);
             cdv_jtf_dados_pessoais_centro_custo.setEditable(false);
             cdv_jcb_dados_pessoais_elemento_gasto.setEnabled(false);
             cdv_jtf_dados_pessoais_elemento_gasto.setEnabled(false);
             }
Scoobydoo

Voce pode colocar no If assim tmb

if (cdv_jtf_dados_pessoais_ordem_servico.getText().equals("") || cdv_jtf_dados_pessoais_ordem_servico.getText().length() ==0){
P

você também pode utilizar o trim para remover qualquer espaço

assim

if (cdv_jtf_dados_pessoais_ordem_servico.getText().trim().equals("") || cdv_jtf_dados_pessoais_ordem_servico.getText().trim().length() ==0){
viniciusgundim

Scoobydoo, valeuu garoto esperto deu certo foi vacilo meu msm, foi na hora de montar a condição…

T++

viniciusgundim

Outra coisa hlera, como seria para compar um combox como diferente de vazio, mais incluindo jtextfield, por exemplo não tá certo o codigo, mais é mais ou menos assim:

if (cdv_jftf_taxi_data.getSelectedItem()!=("")) ||  (cdv_jtf_dados_pessoais_ordem_servico.getText().!=("")) || cdv_jtf_dados_pessoais_fone.getText().equals(""){

}

Tem como fazer algum assim.

Scoobydoo

if (cdv_jftf_taxi_data.getText().equals("")) || (cdv_jtf_dados_pessoais_ordem_servico.getText().equals("")) || cdv_jtf_dados_pessoais_fone.getText().equals(""){

mesmo esquema… ComboBox tmb tem GetText()

lina

Oi,

Acho mais facil fazer algo do tipo:

boolean
value = cdv_jtf_dados_pessoais_ordem_servico.getText().equals("");

cdv_jcb_dados_pessoais_centro_custo.setEnabled(value);

Ou seimplesmente:

cdv_jcb_dados_pessoais_centro_custo.setEnabled(cdv_jtf_dados_pessoais_ordem_servico.getText().equals(""));

Tchauzin!

lina

Oi,

Você ainda poderá utilizar o método isEmpty() no lugar de equals(""). O processo com isEmpty() é muito mais rapido:

Maiores detalhes:

http://www.guj.com.br/posts/list/140086.java

Tchauzin!

Scoobydoo

Lina preste atenção Nisso{

cdv_jcb_dados_pessoais_centro_custo.setEnabled(cdv_jtf_dados_pessoais_ordem_servico.getText().equals("")); cdv_jtf_dados_pessoais_centro_custo.setEditable(cdv_jtf_dados_pessoais_ordem_servico.getText().equals("")); cdv_jcb_dados_pessoais_elemento_gasto.setEnabled(cdv_jtf_dados_pessoais_ordem_servico.getText().equals("")); cdv_jtf_dados_pessoais_elemento_gasto.setEnabled(cdv_jtf_dados_pessoais_ordem_servico.getText().equals(""));

não acha que é mais facil fazer com if mesmo…
OBS: value = cdv_jtf_dados_pessoais_ordem_servico.getText().equals("");
Você percebeu que ele está pegando o valor Booleano de Mais de 1 getText() ???
Infelizmente a otimização não foi muito feliz neste caso;

Tchauzin :smiley:

lina

Scoobydoo:
Lina preste atenção Nisso{

cdv_jcb_dados_pessoais_centro_custo.setEnabled(cdv_jtf_dados_pessoais_ordem_servico.getText().equals("")); cdv_jtf_dados_pessoais_centro_custo.setEditable(cdv_jtf_dados_pessoais_ordem_servico.getText().equals("")); cdv_jcb_dados_pessoais_elemento_gasto.setEnabled(cdv_jtf_dados_pessoais_ordem_servico.getText().equals("")); cdv_jtf_dados_pessoais_elemento_gasto.setEnabled(cdv_jtf_dados_pessoais_ordem_servico.getText().equals(""));

não acha que é mais facil fazer com if mesmo…
OBS: value = cdv_jtf_dados_pessoais_ordem_servico.getText().equals("");
Você percebeu que ele está pegando o valor Booleano de Mais de 1 getText() ???
Infelizmente a otimização não foi muito feliz neste caso;

Tchauzin :D

Oi,

Errado.
Olha quantas vezes ele irá executar o método getText() e equals() desta forma:

cdv_jcb_dados_pessoais_centro_custo.setEnabled(cdv_jtf_dados_pessoais_ordem_servico.getText().equals("")); cdv_jtf_dados_pessoais_centro_custo.setEditable(cdv_jtf_dados_pessoais_ordem_servico.getText().equals("")); cdv_jcb_dados_pessoais_elemento_gasto.setEnabled(cdv_jtf_dados_pessoais_ordem_servico.getText().equals("")); cdv_jtf_dados_pessoais_elemento_gasto.setEnabled(cdv_jtf_dados_pessoais_ordem_servico.getText().equals(""));

Sendo que se atribuir a um booleano só irá fazer 1 vez.

Tchauzin!

Scoobydoo

OBS: Foi você que falou pra ele fazer assim Lina ¬¬

Ou seimplesmente:

view plaincopy to clipboardprint?
cdv_jcb_dados_pessoais_centro_custo.setEnabled(cdv_jtf_dados_pessoais_ordem_servico.getText().equals(""));

E Não tem como atribuir o Booleano a uma Variavel porque ele está pegando o valor Booleano de 3 operações Lina…

if (cdv_jftf_taxi_data.getText().equals("")) || (cdv_jtf_dados_pessoais_ordem_servico.getText().equals("")) || cdv_jtf_dados_pessoais_fone.getText().equals(""){

São 3 valores Booleanos…
Uma variavel não teria como armazenar isso

viniciusgundim

Fiz assim e deu certo:

if (!cdv_jftf_taxi_hora.getText().equals(" : ") || !cdv_jtf_taxi_cidade_origem.getText().equals("") || !cdv_jtf_taxi_cidade_destino.getText().equals("") || !cdv_jtf_taxi_end_origem.getText().equals("") || !cdv_jtf_taxi_end_origem.getText().equals("") || !cdv_jtf_taxi_end_destino.getText().equals("")){ JOptionPane.showMessageDialog(null, "O Campo TAXI, precisa ser terminado.");

Mais ninguem me disse como fazer isso com um combobox, tem alguma idéia??

T+

Scoobydoo

Mesmo esquema cara…
da um GetText() no comboBox…

lina

Scoobydoo:
OBS: Foi você que falou pra ele fazer assim Lina ¬¬

Ou seimplesmente:

view plaincopy to clipboardprint?
cdv_jcb_dados_pessoais_centro_custo.setEnabled(cdv_jtf_dados_pessoais_ordem_servico.getText().equals(""));

E Não tem como atribuir o Booleano a uma Variavel porque ele está pegando o valor Booleano de 3 operações Lina…

if (cdv_jftf_taxi_data.getText().equals("")) || (cdv_jtf_dados_pessoais_ordem_servico.getText().equals("")) || cdv_jtf_dados_pessoais_fone.getText().equals(""){

São 3 valores Booleanos…
Uma variavel não teria como armazenar isso

Oi,

Não! eu estava me referindo ao primeiro post do usuário viniciusgundim.

Quando postei só tinha 3 resposta! haha
:wink:

Tchauzin!

lina

viniciusgundim:
Fiz assim e deu certo:

if (!cdv_jftf_taxi_hora.getText().equals(" : ") || !cdv_jtf_taxi_cidade_origem.getText().equals("") || !cdv_jtf_taxi_cidade_destino.getText().equals("") || !cdv_jtf_taxi_end_origem.getText().equals("") || !cdv_jtf_taxi_end_origem.getText().equals("") || !cdv_jtf_taxi_end_destino.getText().equals("")){ JOptionPane.showMessageDialog(null, "O Campo TAXI, precisa ser terminado.");

Mais ninguem me disse como fazer isso com um combobox, tem alguma idéia??

T+

Oi,

Para o combo, você poderá fazer:

if (combo.getSelectedItem().equals("ITEM")) {}

Tchauzin!

viniciusgundim

O getText, não está dando certo estou usando do swingx pode ser isso???

Obrigado pela atenção.

Scoobydoo

Usa o getSelectedItem() que é melhor…

lina

Oi,

É porque não existe getText() no ComboBox.

Tchauzin!

Scoobydoo

¬¬ Qué aposta quando que Tem ???
Procure por import org.eclipse.swt.widgets.Combo; <— ve se esse Combo não tem GetText() então ¬¬
Só depende da bliblioteca que você usa…
Mas deixa pra la…o erro foi meu mesmo… desculpe…

viniciusgundim

Mais o que posso usar nesse caso, desse combobox do swingx???

getSelectedItem, tb não deu certo???

o que vai ser nesse caso???

Obrigado pela atenção…

viniciusgundim

É o seguinte consegui usei o getDate, pois esse combo ele é de data do swingx não sei se vc’s já usaram, mais é aquele combo que vc clique a aparece um calendario…

Mais valeuuu t+++ pra vc’ss…

Criado 25 de fevereiro de 2010
Ultima resposta 25 de fev. de 2010
Respostas 22
Participantes 5