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?
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ê.
publicclassButtonStateNavegadorEditorextendsPropertyEditorSupport{publicstaticfinalintAUTO_ENABLED=0;publicstaticfinalintAUTO_HIDDEN=1;publicstaticfinalintENABLED=2;publicstaticfinalintDISABLED=3;publicstaticfinalintHIDDEN=4;publicButtonStateNavegadorEditor(){}/** list of tags */privateString[]tags;privateintvalues[];privateStringjavaInitStrings[];@OverridepublicString[]getTags(){tags=newString[5];tags[0]="AUTO_ENABLED";tags[1]="AUTO_HIDDEN";tags[2]="ENABLED";tags[3]="DISABLED";tags[4]="HIDDEN";values=newint[5];values[0]=0;values[1]=1;values[2]=2;values[3]=3;values[4]=4;returnthis.tags;}@OverridepublicStringgetJavaInitializationString(){if(this.tags==null){getTags();}Objectobj=getValue();if(objinstanceofInteger){inti=((Integer)obj).intValue();for(intj=0;j<values.length;j++){if(i==values[j]){returntags[j];}}}return"?????";}@OverridepublicvoidsetAsText(Stringtext)throwsIllegalArgumentException{if(this.tags==null){getTags();}for(inti=0;i<tags.length;i++){if(text.equals(tags[i])){setValue(i);break;}}}@OverridepublicStringgetAsText(){Objectobj=getValue();if(objinstanceofInteger){if(tags==null){getTags();}inti=((Integer)obj).intValue();for(intj=0;j<values.length;j++){if(i==values[j]){returntags[j];}}}returnnull;}}