2009-08-16 9 views
4

Je veux créer une application de bureau - une visionneuse de carte, quelque chose comme ceci: http://sunsite.ubc.ca/UBCMap/ en Java. Chaque fois que quelqu'un passe la souris au-dessus d'un bâtiment sur la carte, il devrait y avoir une info-bulle indiquant quelque chose à propos de ce bâtiment sur la carte comme le numéro de téléphone de son bureau et ce bâtiment devrait briller sur la carte 2D. Quelqu'un peut-il me donner quelques indications sur le framework que je devrais utiliser en Java pour construire quelque chose comme ça (par exemple JavaFx)? Existe-t-il un exemple de code qui fait quelque chose de similaire? JavaFX est un candidat approprié pour ce type d'application.Application de bureau Interactive Map Viewer en Java

+0

Je pense qu'il y a une question similaire ici aussi: http: //forums.adobe.com/thread/21693 – iceman

+0

(pour info, il y a eu des rapports isolés de ce lien causant l'instabilité - applet java non-fermable, etc, mais ça marche en toute sécurité pour moi, je fais un non-lien, mais je laisse le href - juste par mesure de précaution) –

Répondre

1

Si vraiment tout ce que vous avez est une image et que vous voulez des info-bulles dessus - voici une description de 30 secondes.

  • Sous JPanel
  • méthode
  • peinture override() pour dessiner l'image
  • Définir un certain nombre d'objets de forme (polygones, rects, etc ...) que vos "bâtiments" le long d'une chaîne d'info-bulle de texte
  • override getTooltip dans la sous-classe JPanel. À chaque appel, parcourez vos objets Shape en testant si le point est à l'intérieur de la forme (la forme a une méthode pour cela). retour info-bulle appropriée pour Shape, ou null si votre souris n'est pas sur la forme
  • Si vous voulez des effets de survol, enregistrez MouseMotionListener et utilisez-le pour trouver la forme "hover". Appelez repaint() et rendez votre "hover" d'une manière spéciale.
  • boom! vous avez terminé

CONSEIL: vous devrez probablement enregistrer votre JPanel avec TooltipManager.

0

La syntaxe du script JavaFX prend un peu de temps pour s'y habituer, mais une fois que vous êtes à jour, il est facile de créer des composants graphiques/graphiques. En outre, vous pouvez vous connecter aux API Java et aux services Web existants qui pourraient être utiles pour votre application.

Découvrez here et here pour les applications similaires à celle que vous avez décrite. Un avertissement sur JavaFX est qu'il est encore dans la première partie de sa vie - donc s'attendre à rencontrer des bugs et être averti de la possibilité de briser les changements dans les versions ultérieures.

+0

Oui, vous avez raison .. débutant avec javafx semble un peu bizarre avec le script .. alors je veux le garder simple pour l'instant.Laissez-moi le faire en utilisant swing ..puis, ce n'est pas un google/yahoo map..it un gif/bitmap, une carte que j'ai de campus.Comment est-ce que je le traite de sorte qu'un survol des bâtiments individuels sur la carte peut montrer un pourboire de ballon? – iceman

+0

Ne vous méprenez pas - je ne voudrais pas vous empêcher de travailler avec JavaFX. Il est facile à utiliser une fois que vous vous y êtes habitué, et il semble bien adapté au type d'application que vous décrivez. –

1

Si votre carte est vraiment aussi simple que l'exemple auquel vous avez lié, je vous recommande vivement d'éviter l'utilisation de java (ou javaFX tout à fait). Vous pouvez faire ce que vous voulez avec l'une des API de cartographie javascript DHTML. Voir

  • Google Maps API
  • OpenLayers

Java est surpuissant. Les applets sont lents à charger et difficiles à déployer correctement dans un nombre varié d'environnements. Mieux vaut publier un fichier KML (ou quelque chose d'équivalent) et tirer parti des cartes de quelqu'un d'autre que d'écrire et de maintenir une application entière vous-même.

+0

Merci pour la suggestion Joel, mais si vous lisez mon post, je le veux dans une application de bureau ... pas dans un navigateur. Je veux des suggestions sur la façon dont je peux lire et traiter une carte .. devrait être un tilemap .. – iceman

+0

Ah, dans ce cas, vous pouvez regarder la bibliothèque GeoTools. C'est une bibliothèque Java qui fournit beaucoup d'outils pour construire des logiciels de cartographie –

0

Regardez le produit JxMaps. Il fournit des fonctionnalités pour ajouter une carte interactive à l'application de bureau Java.

Questions connexes