2010-09-01 6 views
0

Salut les gars J'ai un problème qui me rend vraiment confus, j'ai 'writeMethod' qui est un type de classe Method, 'dpv' qui est un type de propriétéDescriptor, j'ai récupéré le writeMethod de l'objet par getWriteMethod(), maintenant mon problème est comment définir « writeMethod » écrire sur une propriété d'un objet (par exemple JLabel, JButton) voici mon code:en utilisant writeMethod pour écrire sur une propriété d'un objet?

if(dpv.getPropertyType().isPrimitive() 
     || dpv.getPropertyType().isInstance("Integer")) 
     { 
      Method writeMethod = dpv.getWriteMethod(); 

      //setWriteMethod(writeMethod);<---------- Not sure about this part (doesn't work) 

      System.out.println(writeMethod); 
      PropertyValue.setEnabled(true); 
      SetButton.setEnabled(true); 
     } 
     else{ 

      PropertyValue.setEnabled(false); 
      SetButton.setEnabled(false); 
     } 

Merci pour votre aide les gars

Répondre

1

pour utiliser la méthode écrire la propriété, vous devez l'invoquer. Les propriétés simples prennent une valeur unique - la valeur de la propriété, donc vous invoquez la méthode avec un seul argument. Le code suivant définit la propriété sur un bouton à la valeur 42:

Method writeMethod = dpv.getWriteMethod();  
JButton button = ...; // the target to write to 

try 
{ 
    writeMethod.invoke(button, 42); 
} 
catch (IllegalAccessException ex) 
{ 
    // handle these as appropriate 
} 
catch (IllegalArgumentException ex) 
{ 
} 
catch (InvocationTargetException ex) 
{ 
} 

Il est peu probable que vous avez, mais si la propriété est le type de propriété indexée rarement utilisée, alors vous devez utiliser la méthode comme ceci:

writeMethod.invoke(target, index, propertyValue); 

Cela correspond à la méthode setter

setIndexProperty(int index, PropertyType value); 
+0

Merci, il a aidé – HAMID

Questions connexes