2012-10-06 7 views
2

Je suis assez nouveau pour java et javafx 2. Ce que je voudrais faire est une application qui est fondamentalement un conteneur pour des "modules" séparés qui peuvent être ajoutés plus tard.Java + JavaFX2 Projet: contenu modulaire

L'application principale doit être une sorte de navigateur de contenu qui analyse les modules dans un dossier. Ensuite, vous pouvez sélectionner le module désiré (par exemple, un petit jeu) et l'ouvrir à l'intérieur de l'application principale (comme un cadre). J'aimerais aussi que je puisse avoir une option pour passer en plein écran (module seulement, sans l'application principale). L'application principale et les modules devraient également être capables de communiquer (par exemple, envoyer des paramètres tels que "difficulté" ou "niveau de départ" et recevoir des scores/résultats).

Avez-vous une idée de la façon dont je devrais réaliser la modularité (sans perdre l'inter-communication)?

J'ai essayé de rechercher sur Google mais je ne suis probablement pas au courant de la bonne terminologie technique ... donc, toute aide serait appréciée!

Remarque: Je suis un utilisateur graphique (la plupart de mon expérience de programmation est basée sur CLI et de bas niveau).

Éditer: Bizarre, ça enlève "salut!" à partir de la première ligne ... Je suppose qu'il y a des règles qui nous obligent à être impoli;) ...

Répondre

1

Jetez un oeil à la classe ServiceLoader dans Java 6+, il y a beaucoup de documentation pour l'interweb mais l'essentiel est que vous pouvez lui demander des implémentations d'une interface trouvée sur le classpath qui sont configurés. Vous pourriez avoir l'interface suivante par exemple:

interface AppPlugin { 
    Node getContentNode(); 

    String getName(); 
} 

Plugins il faudrait alors mettre en œuvre cette interface et être configuré pour être chargé par le ServiceLoader. Consultez le tutoriel ici:

http://weblogs.java.net/blog/timboudreau/archive/2008/08/simple_dependen.html

+0

Merci! J'ai trouvé ceci: http://solitarygeek.com/java/a-simple-pluggable-java-application, ce qui est un peu plus facile que le lien que vous m'avez donné. Je dois encore comprendre comment gérer ceci avec JavaFX2 (n'importe quelle entrée sur ceci?). Merci encore, très apprécié. – BlackRainbow

+1

Pas de problème, je ne suis pas sûr de la façon dont vous voulez qu'il ressemble exactement, mais vous pourriez avoir un ListView de tous les plugins (doc oracle sur ListView) montrant le nom, et un panneau central où le nœud de contenu du plugin serait défini lorsqu'un élément de la liste est sélectionné. Cela suppose que l'interface de service est similaire à l'exemple ci-dessus. –