Olá pessoal, boa noite desculpem pelo título nada explicativo.
Sendo necessário fazer algo como isso:
class Form extends JFrame
{
private VisualProxy proxy; // ganha valor em algum momento
public void init()
{
Container c = getContentPane();
c.add( proxy.getVisualComponent() );
proxy.validate();
}
}
Qual das destas opções é melhor.
Esta:
public interface VisualProxy
{
public JComponent getVisualComponent();
public void validate();
public void setCorrespondingField();
}
public class MeuComponent extends JTextField implements VisualProxy
{
private java.lang.reflect.Field Field;
public JComponent getVisualComponent()
{
return this;
}
public void validate() throws BlueScreenOfDeathException
{
if( field == null )
throw new BlueScreenOfDeathException();
if( isThisOk )
field.set( declaringObject, this.getText() );
}
public void setCorrespondingField( Field field )
{
this.field = field;
}
}
Esta outra
public abstract class VisualProxy extends JComponent
{
protected Field field;
// desta maneira posso definir algum construtor padrão
public VisualProxy( Field field )
{
this.field = field;
}
public abstract void validate();
}
public class MeuComponent extends VisualProxy
{
public JComponent getVisualComponent()
{
return new JTextField();
}
public void validate()
{
if( isThisOk )
field.set( declaringObject, this.getText() );
}
}
Ou a opção secreta número 3? Ou ainda a opção bônus número 2.5?
Valeu!