Beans e Editor Visual do Netbeans- Estilo ComboBox

3 respostas
Felagund

Boa tarde,

Aqui na empresa em que trabalho, temos alguns compoenentes customizados que usamos na construção das aplicações. e em alguns desses compoenentes são utilizados constantes e enuns para definirem propriedades.

Na paleta do netbeans tem algumas propriedades do java, que são definidas desse modo, e nas propriedades no netbeans, aparece um combo listando as opções disponiveis.
Gostaria de implementar isso nos compoenetes que utilizamos.

Alguem pode me ajudar? como posso definir para ele fazer isso?

[]'s

3 Respostas

ivo_costa

http://www.guj.com.br/posts/list/59306.java
http://www.guj.com.br/posts/list/48446.java

Felagund

Na verdade minha dúvida não de como colocar os compoenentes na palheta do netbeans, isso ja esta feito.

Estou falando de mostrar uma das propriedades com um combo, pois atualmente tenho que digitar um número para ele processar. E nem sempre lembro qual a ordem das constantes, tenho que olhar o fonte pra lembrar. Gostaria de fazer mais pratico, um combo listando as constantes daquela propriedade daquele componente.

paulofafism

Boa tarde Felagund eu precisei de fazer a mesma coisa que você. Você tem que implementar um PropertyEditorSupport para a propriedade do seu componente. Você também deve criar uma classe BeanInfo para o seu componente o NetBeans faz isso automatico para você.

public class ButtonStateNavegadorEditor extends PropertyEditorSupport {

    public static final int AUTO_ENABLED = 0;
    public static final int AUTO_HIDDEN = 1;
    public static final int ENABLED = 2;
    public static final int DISABLED = 3;
    public static final int HIDDEN = 4;

    public ButtonStateNavegadorEditor() {
    }

    /** list of tags */
    private String[] tags;
    private int values[];
    private String javaInitStrings[];

    @Override
    public String[] getTags(){

        tags = new String[5];

        tags[0] = "AUTO_ENABLED";
        tags[1] = "AUTO_HIDDEN";
        tags[2] = "ENABLED";
        tags[3] = "DISABLED";
        tags[4] = "HIDDEN";

        values = new int[5];
        values[0] = 0;
        values[1] = 1;
        values[2] = 2;
        values[3] = 3;
        values[4] = 4;

        return this.tags;
    }

    @Override
    public String getJavaInitializationString() {

         if (this.tags == null){
             getTags();
         }

         Object obj = getValue();

         if(obj instanceof Integer)
         {
            int i = ((Integer)obj).intValue();
            for(int j = 0; j < values.length; j++)
            {
                if(i == values[j])
                {
                    return tags[j];
                }
            }

         }

         return "?????";

    }

    @Override
    public void setAsText(String text) throws IllegalArgumentException {

        if (this.tags == null){
            getTags();
        }

        for(int i=0;i< tags.length;i++){
            if (text.equals(tags[i])){
                setValue(i);
                break;
            }
        }
    }

    @Override
    public String getAsText() {

        Object obj = getValue();

        if(obj instanceof Integer)
        {
            if(tags == null)
            {
                getTags();
            }

            int i = ((Integer)obj).intValue();

            for(int j = 0; j < values.length; j++)
            {
                if(i == values[j])
                {
                    return tags[j];
                }
            }
       }

       return null;
    }

}
Criado 18 de março de 2009
Ultima resposta 17 de nov. de 2009
Respostas 3
Participantes 3