Ai pessoal como faço um radio button, desabilite um JtextField , com swing é mole, mas com SWING utilizando o genises???
Olá Álvaro,
Desculpe pela demora em responder. O primeiro passo é você entender que no genesis você habilita/desabilita o componente que representa uma propriedade a partir de outra propriedade. Então, sua regra funcionará em cima das propriedades do seu bean e não em cima da view.
Por exemplo, vamos analisar um exemplo da própria documentação do genesis:
@Form
public class ExemploEnabledWhenForm {
private boolean casado;
private String nomeConjuge;
public boolean isCasado() {
return casado;
}
public void setCasado(boolean casado) {
this.casado = casado;
}
@EnabledWhen("form.casado")
public String getNomeConjuge() {
return nomeConjuge;
}
public void setNomeConjuge(String nomeConjuge) {
this.nomeConjuge = nomeConjuge;
}
}
No código acima, a propriedade nomeConjuge será editável apenas quando a propriedade casado for true. Do ponto de vista do form, é isso que precisamos. Agora, vamos para a parte da view: suponhamos que tivéssemos dois radio buttons representando as opções Sim e Não para essa propriedade:
JPanel painelCasado = // ... JPanel criado e configurado em algum outro lugar
ButtonGroup casado = new ButtonGroup();
JRadioButton casadoSim = new JRadioButton();
casadoSim.setText("Sim");
casadoSim.setName("true");
painelCasado.add(casadoSim);
casado.add(casadoSim);
JRadioButton casadoNao = new JRadioButton();
casadoNao.setText("Não");
casadoNao.setName("false");
painelCasado.add(casadoNao);
casado.add(casadoNao);
A única coisa que fizemos de especial acima - o resto é requerido naturalmente pelo Swing - foi definir o name de cada JRadioButton com o valor que queremos que represente. Por fim, devemos registrar no SwingBinder que temos esse ButtonGroup:
SwingBinder binder = new SwingBinder(this, new ExemploEnabledWhenForm());
binder.registerButtonGroup("casado", casado);
binder.bind();
Caso tenha alguma outra dúvida, recomendo que utilize a lista de usuários do genesis em português onde mais pessoas serão capazes de responder sua pergunta.