Comment convertir un projet java normal dans intellij en un projet JavaFx

j'utilise actuellement un projet java normal (projet gradle) et je veux le transformer en un projet JavaFx sans avoir à réimporter les sources existantes en un nouveau projet Javafx. Est-il un moyen pour y parvenir?

10
demandé sur Wizard 2014-05-02 09:24:27

4 réponses

Il n'y a rien à convertir.

Je ne crois pas qu'il y ait de différence D'idée entre un projet Java" normal " et un projet JavaFX.

bien sûr, dans L'idée 12.x+ il y a un assistant que vous pouvez utiliser pour créer un nouveau projet JavaFX. Mais je pense que tout ce qu'il fait est de créer un exemple d'application hello world - après la création initiale, la façon dont le projet fonctionne n'est pas différent de n'importe quel autre projet Java.

Et voici comme il se doit, JavaFX n'est que Java. Oracle ne fait pas de différence entre JavaFX et Java dans leur distribution, et ni L'un ni l'autre ne devrait IDEs dans leurs types de projet.

je crois, dans ce cas, même si j'ai tort, que j'ai assez raison pour qu'il n'y ait pas vraiment d'importance si j'ai tort.

mise à Jour

donc j'ai eu assez tort que cela importe: -)

en utilisant L'idée 13.1.4, si je crée un nouveau projet en utilisant File | New Project | Java , il y a les paramètres de ressources suivants ( File | Settings | Compiler ):

?*.properties;?*.xml;?*.gif;?*.png;?*.jpeg;?*.jpg;?*.html;?*.dtd;?*.tld;?*.ftl

C'est-à-dire que les ressources du projet ne sont définies que pour copier des types de fichiers spécifiques. Vous pouvez donc le modifier pour obtenir les types de fichiers supplémentaires requis dans certains projets JavaFX en ajoutant le support de copie de ressources pour fxml et css; I. e, appending ;?*.fxml;?*.css .

la partie intéressante est que si vous créez un nouveau projet en utilisant"" , il y a les paramètres de ressources suivants:

!?*.java;!?*.form;!?*.class;!?*.groovy;!?*.scala;!?*.flex;!?*.kt;!?*.clj

essentiellement, il copie tout ce qui n'est pas un fichier source, une sorte de liste noire de fichiers plutôt qu'un ensemble de liste blanche de fichiers comme est utilisé par d'autres modèles de création de projet. Vraiment bizarre... Quoi qu'il en soit, les ensembles de ressources sont configurables par l'utilisateur, de sorte que vous pouvez les modifier comme bon vous semble et une fois que vous le faites, vous ne devriez pas avoir de problèmes (je crois, mais j'ai eu tort avant ; -)

Suggestion - utiliser des outils de construction tiers en conjonction avec votre IDE

vous pourriez être mieux de baser votre construction sur un outil tiers tels que Gradle ou Maven. Idée fonctionne vraiment bien avec ces deux externes construire des outils (et les autres) . Les avantages de l'utilisation d'un outil tiers est:

  1. les projets avec ces outils suivent une convention où les ressources sont placées dans un dossier de ressources spécifique et tout dans ce dossier est traité comme une ressource à empaqueter dans votre sortie de compilation. Il y a donc moins de confusion.
  2. les projets résultants sont plus portables et plus faciles à utiliser par d'autres développeurs qui peuvent ne pas utiliser Idea.
  3. les projets peuvent être construits facilement par des systèmes de construction à intégration continue comme Jenkins.
  4. Gradle et Maven ont tous deux des plugins JavaFX spécifiques qui fournissent un support supplémentaire pour l'emballage des applications JavaFX.

bien sûr, l'inconvénient d'utiliser un outil de construction de tierce partie, est la complexité (et de nombreuses bizarreries) de les apprendre que parfois ils peuvent être tout à fait la bête. Je pense donc que c'est un peu un compromis - les petits projets exploratoires personnels n'en ont pas besoin, les grands projets ou les projets que vous avez l'intention de partager avec d'autres bénéficient de l'utilisation de tels outils.

11
répondu jewelsea 2014-08-14 18:50:57

une solution est de générer votre code en utilisant Scene Builder, puis de l'intégrer dans votre projet IntelliJ existant. Alors qu'il devrait être possible d'importer ce module, vous pouvez aussi simplement déplacer le code là où il doit être (en apportant les corrections appropriées aux déclarations du paquet, etc.). Si vous remarquez que les importations javafx ne sont pas reconnues dans votre projet, essayez cette solution:

assurez-vous D'abord que vous avez mis en place IntelliJ en général pour JavaFX par suivant les étapes initiales de ce tutoriel . Note: ci-dessous je mentionne 1.8, mais cela devrait fonctionner avec 1.7+. Je vous recommande de 1,8+.

Deuxièmement, s'assurer que les paramètres de projet existants permettent l'utilisation de javaFX

  1. Ouvrir Un Projet "Structure 1519100920"
  2. , Cliquez sur le Projet dans le cadre du projet volet paramètres
  3. S'assurer que le SDK du projet est 1,8+.

troisième S'assurer que les modules sont configurés pour un JDK supportant JavaFX

  1. Ouvrir Un Projet "Structure 1519100920"
  2. cliquez sur Modules sous le volet "Paramètres du projet
  3. S'assurer que le module SDK utilisé supporte javaFX, encore une fois j'utilise JDK 1.8 mais il devrait fonctionner avec 1.7.

en outre, s'il Vous Plaît être conscient que si vous avez un projet maven, vous pouvez avoir besoin de mettre votre fxml dans un endroit particulier, "/main/resources/". Jetez un oeil à .

ça a marché pour moi, et j'espère que ça vous aidera.

1
répondu Noah Ternullo 2017-05-23 12:34:31

j'ai suivi ces étapes

  • créer un nouveau module dans votre projet intellij existant (A)
  • créer un nouveau projet JavaFx ailleurs
  • Copiez le code du projet JavaFx, à savoir Controller.java,Main.java and sample.fxml dans votre module dans le projet (A) sous le répertoire src comme dans A/user-interface/src

enter image description here

  • , Vous trouverez une erreur dans sample.fxml puisqu'il fait référence à la classe de contrôleur sample.Controller changer en "Contrôleur". cela a fonctionné de cette façon (comme j'ai enlevé le sample dossier paquet

Fixing sample.fxml

  • Dans (A) ouvrir le menu des paramètres File | Project Structure | Modules
  • sélectionnez le module user-interface dans la liste à gauche de la fenêtre de configuration
  • passer à la dependencies onglet
  • ajoutez votre ancien module non-gui en tant que dépendance de module en utilisant la marque verte + sur le côté droit
  • Maintenant vous pouvez utiliser les classes dans le module non-gui, enjoy!

note: vous pouvez sauter la dépendance add module et laisser intellij le faire pour vous, il suffit de taper le nom d'une classe dans l'ancien module, alt+enter (la lumière ampoule magique) -> add module depenency

Module dependency window

1
répondu shakram02 2017-09-08 04:34:15

s'il vous Plaît gardez à l'esprit que votre source(s) dossier(s) doit être réglée correctement. Voir screenshot pour avoir une idée de ce que je veux dire..

enter image description here

0
répondu Martin Pfeffer 2015-10-24 10:05:30