Ola pessoal, sou novato em Java, mas ja programo em Delphi a um bom tempo… Ainda estou estudando o que o Java me oferece.
Estou desenvolvendo uma classe padrao para todos meus formulários como eu tenho em delphi.
La eu tenho um método (em delphi chama Procedure) onde eu passo o valor True or False, esse método é para Habilitar e Desabilitar os Botoes de um JFrame, mas quais botoes vou habilitar ou desabilitar? ae a dúvida… em delphi eu tenho uma propriedade chamada TAG que aceita numeros INT, ae por exemplo, se eu chamo o metodo com True, eu vou habilitar todos com TAG 0 e desabilitar todos com TAG 1… Isso pra mim funciona perfeito em delphi, agora gostaria de reescrever esse método em Java para facilitar a minha vida…
O Problema é… qual propriedade (não sei se é assim que se chama em Java) semelhante a TAG que eu posso usar em Java?
Pegar todos os JButton do JFrame eu sei, agora falta essa propriedade…
Hum … olha … via código as propriedades do JButton sao acessadas apenas através dos métodos do objeto … o que eu acho que seria possível vc fazer é criar um novo tipo de objeto/classe que herda o objeto/classe JButton … tipo:
public JButtonSeu extends JButton
{
}
aí nesta nova classe vc poderia acrescenter um atributo/propriedade chamado tag por exemplo e na sua aplicacao vc poderia usar a classe JButtonSeu ao invés de JButtons …
jctorelli, você postou tb uma dúvida sobre OO e perguntava sobre interfaces. Usando o exemplo q vc deu, imagine que a classe JButtonSeu implementasse uma interface como a seguinte:
public interface TaggedJControl {
public boolean canDisable();
}
agora vc faria assim class JButtonSeu extends JButton implements TaggedJControl.
Dessa maneira seria possível extender um JFrame que implemente um método para habilitar/desabilitar os componentes que implementem a interface TaggedJControl. Esse método deveria então chamar o método canDisable() para saber se pode habilitar ou se pode desabilitar dependendo do estado atual desses objetos.
// ...
if (obj instanceof TaggedJControl) {
if obj.canDisable() { ... }
}
O que vocês acham?
Talvez, seja uma solução para problemas similares ou pode ser uma furada?
Acho que eu deveria utilizar mais. As interfaces são um mecanismo importante para códigos limpos e reutilizáveis. Deter-se nos exemplos de utilização de interfaces do próprio Java (interfaces como Comparable, Runnable, ActionListener, etc…) dão uma dimensão da flexibilidade e poder desse mecanismo de OO.