Soutenez-nous
Les FAQs Java :
FAQ JAVA FAQ Java EE FAQ Java ME FAQ Java XML FAQ JavaFX FAQ Java GUI FAQ Struts FAQ JSF FAQ JDBC JDO FAQ Hibernate FAQ Spring FAQ Eclipse FAQ NetBeans FAQ JCreator FAQ Maven 2

FAQ JavaFXConsultez toutes les FAQ

Nombre d'auteurs : 4, nombre de questions : 86, dernière mise à jour : 2 juillet 2013 

 
OuvrirSommaireSceneGraphNoeudsComposants Swing dans JavaFx

Swing et JavaFX utilise la meme API de rendue : Java2D.
Il est donc relativement simple d'intégrer un composant SWING dans une interface javaFX.

Première solution : utiliser l'outil fourni

 
Sélectionnez

 
import javafx.ext.swing.SwingComponent;
...
var swingfxComponent = SwingComponent.wrap( new MonComposantSwing() );
 
Stage {
    scene: Scene{
    content: Content[
        swingfxComponent,
        ...
        ]
    }
}

L'inconvénient de cette méthode est qu'il n'est pas possible de faire de binding sur les différentes variables de notre noeud car cela doit être fait à la creation.

Seconde solution : par héritage

 
Sélectionnez


import javafx.ext.swing.SwingComponent;
...
 
public class MonFXComponent extends SwingComponent{
    
    /*on garde ici une reference public pour pouvoir acceder a notre composant*/
    public-read var monComp : MonComposantSwing;
    
    public override function createJComponent(): J2DMapVolatile{
        monComp = new MonComposantSwing();
        return monComp;
    }
}
 
Sélectionnez

 
var swingfxComponent:MonFXComponent = MonFXComponent{
        translateY: bind ...
        translateX: bind ...
        effect: ...
    }
 
Stage {
    scene: Scene{
    content: Content[
        swingfxComponent,
        ...
        ]
    }
}
 

Si vous n'avez à afficher qu'un composant plus ou moins statique (JLabel, Image ...), il est préférable d'utiliser la première solution.

Si vous avez besoin de modifier le composant au cours de l'application, alors il vaut mieux utiliser la seconde solution.

Créé le 27 janvier 2009  par Johann Sorel
Les codes sources sont, sauf mention spéciale, libres de droits, et vous pouvez les utiliser à votre convenance. Pour le reste, ce document constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2009 Developpez LLC : Tous droits réservés Developpez LLC. Aucune reproduction, ne peux en être faite sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.