Habilitar JTextField apos a seleção de um ComboBox

7 respostas
G

olá… gostaria de saber como faço para habilitar textFields depois q eu excolher um item do JComboBox…

ex:
os TextFields como nº do ceheque primeiramente estão não-editáveis… mas depois que escolher a opção forma de pagamento com cheque (está em ComboBox) eles ficam editáveis!!!

Obrigado!

7 Respostas

ViniGodoy

Adicione um actionListener na sua ComboBox.

E depois use o método setEditable do JTextField para deixa-los enabled novamente.

G

tentei issu aki… mas naum deu certo…

public void actionPerformed(ActionEvent e){

if(e.getSource()==CHEQUE) {

T7.setEnabled(true);

}

}

continua como setEnable(false);

*tentei tb com o serEditable… mas tb n deu certo!

G

descobri o problema… mas não a solução…

tipo… não estou sabendo como dar um evento a um item selecionado de um JComboBox nesse caso meu tenhu 3 opções de pagamento… A vista, Cheque ou Rotativo e Quando eu escolher “Cheque” que q habilite as TextFields Especificas para Cheques!

ViniGodoy

Lembre-se que Strings se comparam com equals, não com ==.

Qual é o problema?

Esse seria um boneco de um ActionPerformed.

if (suaCombo.getSelectedItem() == null)
   return;

assert item instanceof String : "Wrong item class: " + item.getClass().getCanonicalName();

String item = (String)suaCombo.getSelectedItem();

txtCheque.setEnabled(item.equals("Cheque"));
txtCartao.setEnabled(item.equals("Cartão de crédito"));
txtBoleto.setEnabled(item.equals("Boleto bancário"));
N

ou tambem você pode usar uma ação do JComboBox quando acionar o evento você chama esta função

nomedojTextField.grabFocus();

Esta função joga o cursor no JtextField

G

descobri…
fiz da seguinte maneira…

public void actionPerformed(ActionEvent e){
     if(e.getSource()==C1) {
         if (C1.getSelectedItem() == "CHEQUE"){
             T7.setEditable(true);
             T8.setEditable(true);
             T9.setEditable(true);
             T10.setEditable(true);
         }
     }
  }
ViniGodoy

Use o == para comparar referências (como no caso do getSource e do C1).
Agora, para comparar valores, (ver se o item selecionado tem o valor “CHEQUE”) use o equals.

public void actionPerformed(ActionEvent e){ if(e.getSource()==C1) { if (C1.getSelectedItem().equals("CHEQUE")){ T7.setEditable(true); T8.setEditable(true); T9.setEditable(true); T10.setEditable(true); } } }

Só lembrando que vc também poderia evitar um dos ifs (e a consequente identação):

public void actionPerformed(ActionEvent e){ 
   if(e.getSource()==C1) { 
      boolean editable = C1.getSelectedItem().equals("CHEQUE");
      T7.setEditable(editable); 
      T8.setEditable(editable); 
      T9.setEditable(editable); 
      T10.setEditable(editable); 
   } 
}
Criado 17 de outubro de 2007
Ultima resposta 18 de out. de 2007
Respostas 7
Participantes 3