Pergunta

Eu tenho um Jlabel e usando o NetBeans, vinculei -o a uma propriedade no formulário.

O problema é como faço para atualizar os valores de ligação quando a propriedade com a qual o texto do rótulo foi ligada mudou. this.FirePropertyChange funciona, mas cheira mal ... eu gostaria de algo assim.

por exemplo, o jlabel.text está obrigado a formar algum valor

private someClass someThing;
public String getSomeValue(){
  return someThing.getSomeThing();
}
//when someMethof is fired the jlabel should update its text value
public void someMethod(){
  someThing = someThingElse;
  bindingGroup.refresh()?????

}
Foi útil?

Solução

Infelizmente, se você quiser usar a API de encadeamento de feijões, você terá que lidar com o cheiro de firePropertyChange.

No entanto, não vejo qual é o problema? É uma mudança bastante simples. Mude sua classe para o seguinte:

private someClass someThing;
public String getSomeValue(){
  return someThing.getSomeThing();
}
//when someMethof is fired the jlabel should update its text value
public void someMethod(){
  someClass oldValue = someThing;
  someThing = someThingElse;
  this.firePropertyChange("someValue", oldValue, someThing);

}

Verificação de saída Este artigo sobre java.net para mais detalhes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top