web-dev-qa-db-fra.com

Utiliser un navigateur Web intégré (par exemple, Chrome) en tant que boîte à outils d'interface graphique pour les applications de bureau Java?

Ces sites Web HTML5 ont fière allure. Pourquoi mes applications de bureau Java ne le sont-elles pas? Swing et SWT ne sont que de la vieille école. Ils font leur travail, mais il est tout simplement impossible de créer des interfaces graphiques sophistiquées avec de l’animation.

Je me demandais: est-il possible d'utiliser HTML5 comme boîte à outils d'interface graphique? Je pense à une bibliothèque qui a une API similaire à Swing ou SWT, mais rendue au format HTML5. Il devrait être thématique et vous devriez avoir accès à la page en Java (c'est-à-dire une fusion entre Java et JavaScript/HTML5).

Pourquoi ne pas simplement créer une application Web et envoyer l'URL à mes utilisateurs? Je souhaite bénéficier de l’intégration réelle au bureau d’applications Java SE (fichiers, COM, icône de la zone de travail, etc.). Juste quelque chose comme PhoneGap mais pour les OS de bureau au lieu de téléphones.

Incroyablement, je n'ai rien trouvé de tel sur le Web. Mais peut-être que je viens d'entrer les mauvais termes de recherche? Quelqu'un a une idée?

Sinon, puis-je intégrer WebKit/Chrome avec mon application? Ainsi, l'utilisateur n'aura pas à installer sa propre copie ni à modifier les paramètres.

28
Mive van Haaven

Deux choses viennent à l'esprit:

  • Adobe Air , qui correspond plus ou moins exactement à ce que vous recherchez: PhoneGap for the desktop.
  • Chromium Embedded Framework , qui, avec un peu d’effort de votre part, vous permettrait d’utiliser Chromium comme cadre d’une application.
9
Mike West

TeamDev Ltd. a récemment publié JxBrowser bibliothèque qui permet de faire ce que vous voulez. Il permet d'intégrer le contrôle de navigateur Web basé sur Chromium dans des applications Java Swing/AWT. Il prend en charge l’architecture multi-processus Chromium et rend les pages Web hors écran. Avec JxBrowser, vous recevez un composant totalement léger du navigateur Swing qui affiche les pages Web exactement comme dans l'application Google Chrome.

5
Vladimir

Vous devriez vérifier JavaFX 2.0 . Il vous permet de spécifier des composants d'interface graphique dans FXML et prend en charge le style CSS. Il comporte également un composant "WebView" qui vous permet d'afficher facilement des pages Web au sein d'une application. 

EDIT du 28 novembre 2015

La section de présentation de JavaFX a été déplacée.

A partir de JDK 7u6, JavaFX est inclus dans les kits JDK et JRE Standard. Veuillez télécharger le JDK ou le JRE pour utiliser JavaFX.

Si vous recherchez le téléchargement de JavaFX Scene Builder, vous le trouverez dans Dans la section "Ressources supplémentaires" de la page de téléchargement principale de Java SE .

Veuillez mettre à jour vos liens vers le nouvel emplacement .

5
alistair

L'un des moyens d'utiliser HTML/JavaScript dans les applications de bureau consiste à incorporer un serveur HTML dans l'application. Ensuite, une page Web sera l’interface graphique. C’est littéralement quelques dizaines de lignes de code si vous utilisez 

Exemple: serveur HTTP simple en Java utilisant uniquement l'API Java SE

Docs: http://docs.Oracle.com/javase/7/docs/jre/api/net/httpserver/spec/Sun/net/httpserver/package-summary.html

Vous devez servir la page Web de l'interface graphique à partir du serveur Web (même sur l'hôte local) pour éviter le même conflit de règles d'origine JavaScript décrit ici.

3
34n

Un peu de temps est passé, donc je ne sais pas si cela peut être utile. Mais vous pouvez aussi regarder DukeScript ( http://wiki.apidesign.org/wiki/DukeScript ), un concept des auteurs originaux de l'EDI Netbeans. Autant que je sache, l’idée est de développer des applications Java dans un environnement HTML5. Il s'appuie sur le navigateur en tant que plate-forme (Chrome est pris en charge) et sur une machine virtuelle Java en Javascript qui s'exécute dans le navigateur (deux d'entre eux, leur propre bck2brwsr et TeaVM ). Vous pouvez même utiliser JavaFX et déployer sur Android, iOS ou un navigateur. Consultez http://dukescript.com pour des exemples.

3
Pietro Braione

Quels avantages attendriez-vous par rapport à une interface graphique HTML dans un navigateur standard? De nombreux programmes sont livrés avec leur propre serveur HTTP pour simplifier le développement de l'interface utilisateur. J'ai aussi lu/ QtQuick ( démo YouTube ) mais je ne me suis jamais vraiment essayé

J'ai les choses suivantes à souligner

  1. Le débogage/test de l'interface graphique est plus simple dans un navigateur
  2. Petit paquet
  3. Optimisation du temps de développement
  4. Vraiment multiplateforme (du moins, il est plus facile de passer de multiplateforme à l’aide d’un serveur HTTP comme processeur logique d’application)
0
Raffaele