2009-08-16 5 views
4

Ich möchte eine Desktop-Anwendung erstellen - ein Map Viewer, etwa so: http://sunsite.ubc.ca/UBCMap/ in Java. Immer wenn jemand die Maus über ein Gebäude auf der Karte bewegt, sollte ein Ballon-Tool-Tipp etwas über das Gebäude auf der Karte sagen, wie seine Bürotelefonnummer usw. und das Gebäude sollte in der 2-D-Karte leuchten. Kann mir jemand ein paar Anweisungen geben, welchen Rahmen ich in Java verwenden sollte, um so etwas zu erstellen (z. B. JavaFx)? Gibt es einen Beispielcode, der etwas Ähnliches tut?Interaktive Map-Viewer-Desktop-Anwendung in Java

+0

Ich denke, es gibt eine ähnliche Frage hier: http: //forums.adobe.com/thread/21693 – iceman

+0

(für Informationen, es gab vereinzelte Berichte über diesen Link, der Instabilität verursacht - nicht-verschließbares Java-Applet etc; aber es funktioniert sicher für mich; Ich mache es zu einem Nicht-Link, aber lasse den href - nur als Vorsichtsmaßnahme) –

Antwort

1

Wenn wirklich alles, was Sie haben, ein Bild ist und Sie Tooltips drüber haben wollen - hier ist eine 30 Sekunden Beschreibung.

  • Subclass JPanel
  • Überschreibung Methode paint() Bild zeichnen
  • eine Anzahl von Shape-Objekte definieren (Polygone, Rechtecke, etc ...) als "Gebäude", zusammen mit einem Text-Tooltip Zeichenfolge
  • Override getTooltip in JPanel Unterklasse. Durchlaufen Sie bei jedem Aufruf die Shape-Objekte und testen Sie, ob der Punkt innerhalb der Form liegt (Shape hat hierfür eine Methode). return Tooltip für Shape oder Null, wenn Ihre Maus nicht über Form ist
  • Wenn Sie Rollover-Effekte möchten, registrieren Sie MouseMotionListener und verwenden Sie es, um die "Hover" -Form zu finden. Rufen Sie repaint() auf und rendern Sie Ihren "Hover" auf eine spezielle Art und Weise.
  • Boom! Sie

HINT getan: Sie müssen Ihre JPanel mit ToolTipManager am ehesten registrieren.

0

JavaFX ist ein geeigneter Kandidat für diese Art von Anwendung. Die Syntax des JavaFX-Skripts ist etwas gewöhnungsbedürftig, aber sobald Sie mit der Arbeit fertig sind, ist es einfach, grafische/GUI-Komponenten zu erstellen.

Sie können auch in vorhandene Java-APIs und Webdienste einbinden, die für Ihre Anwendung von Nutzen sein könnten.

Testen Sie die Apps here und here für Apps, die der von Ihnen beschriebenen ähneln. (auch Google für Javafx Karten)

Ein Wort der Warnung über JavaFX ist, dass es noch in den frühen Teilen seines Lebens ist - daher erwarten, Bugs zu begegnen und vor der Möglichkeit gewarnt werden, Änderungen in späteren Versionen zu brechen.

+0

Ja, du hast Recht..Starte mit Javafx scheint ein wenig seltsam mit dem Scripting..so ich will es einfach für jetzt behalten.Lass mich es mit Swing..Sind, das ist kein google/yahoo map..es ein gif/bitmap, eine map, die ich vom campus habe.wie verarbeite ich es, damit ein mouseover auf den einzelnen gebäuden auf der karte eine ballonspitze zeigen kann? – iceman

+0

Versteh mich nicht falsch - ich möchte dich nicht mit JavaFX arbeiten lassen. Es ist einfach zu bedienen, sobald Sie sich daran gewöhnt haben, und es scheint gut für die Art der Anwendung, die Sie beschreiben, geeignet. –

1

Wenn Ihre Map wirklich so einfach ist wie das Beispiel, mit dem Sie verlinkt haben, würde ich sehr empfehlen, die Verwendung von Java (oder javaFX insgesamt) zu vermeiden. Sie können tun, was Sie wollen, mit einem der JavaScript-DHTML-Mapping API. Siehe

  • Google Maps API
  • Openlayers

Java ist übertrieben. Applets sind langsam zu laden und schwer in einer Vielzahl von Umgebungen ordnungsgemäß bereitzustellen. Besser, eine KML-Datei (oder etwas Ähnliches) zu veröffentlichen und die Karten anderer zu nutzen, als eine komplette Anwendung selbst zu schreiben und zu pflegen.

+0

Danke für den Vorschlag Joel, aber wenn Sie meinen Beitrag lesen, möchte ich es in einer Desktop-App ... nicht in einem Browser. Ich möchte einige Vorschläge, wie kann ich eine Karte lesen und verarbeiten .. sollte es eine Tilemap sein .. – iceman

+0

Ah, in diesem Fall möchten Sie vielleicht in der GeoTools-Bibliothek zu sehen. Es ist eine Java-Bibliothek, die viele Tools zum Erstellen von Kartensoftware bietet –

0

Werfen Sie einen Blick in JxMaps Produkt. Es bietet Funktionen zum Hinzufügen von interaktiven Karten zu Java-Desktop-Anwendungen.