2012-11-28 4 views
0

J'essaie JavaFX-2 et l'une des fonctionnalités est dit que nous pouvons créer des fonctions de gestionnaire d'événements en utilisant Javascript dans notre fichier FXML. Une chose qui m'a dérangé est que je ne peux pas accéder à la classe System tout de suite. Il doit être entièrement référencé, comme "java.lang.System". Cela devient moche quand nous avons besoin d'une sortie simple sur la console, je veux dire, "System.out.println" est assez moche pour obtenir quelque chose d'imprimé. Et, même si mon FXML a tous les <? Import java.lang. *? > instructions, apparemment il n'affecte pas à l'intérieur de la < fx: script > tags.Est-il possible d'importer des classes dans FXML <fx:script> bloc (JavaFX-2)

Exemple de code: (Notez la directive <?language javascript?>)

<?xml version="1.0" encoding="UTF-8"?> 

<?language javascript?> 

<?import java.lang.*?> 
<?import java.net.*?> 
<?import java.util.*?> 
<?import javafx.collections.*?> 
<?import javafx.geometry.*?> 
<?import javafx.scene.control.*?> 
<?import javafx.scene.image.*?> 
<?import javafx.scene.layout.*?> 
<?import javafx.scene.paint.*?> 
<?import javafx.scene.text.*?> 

<AnchorPane fx:id="rootPane"> 
    <fx:script> 
    function buttonAction(event){ 
     java.lang.System.out.println("finally we get to print something."); 
     // System.out.println("This wouldn't work even if it wasn't a comment line, anyway"); 
    } 
    </fx:script> 
    <children> 
    <Button id="close" mnemonicParsing="false" onAction="buttonAction(event)" text=""> 
     <graphic> 
     <ImageView pickOnBounds="true"> 
      <image> 
      <Image url="@../resources/close.png" preserveRatio="true" smooth="true" /> 
      </image> 
     </ImageView> 
     </graphic> 
    </Button> 
    </children> 
</AnchorPane> 

Donc, ma question est: Est-il possible d'importer des classes dans < fx: Script >? Je me souviens que je faisais cela dans Actionscript3.0 très simple: import flash.events.MouseEvent ...

Répondre

Questions connexes