私はデスクトップ アプリケーションを構築したいと考えています。これは、次のようなマップ ビューアーですhttp://sunsite.ubc.ca/UBCMap/
。Java で作成します。誰かがマップ上の建物の上にマウスを置くと、オフィスの電話番号など、マップ上のその建物に関する情報を示すバルーン ツールチップが表示され、その建物が 2D マップで光るはずです。このようなもの(JavaFxなど)を構築するためにJavaでどのフレームワークを使用する必要があるかについて、誰かが私に指示を与えることができますか?似たようなことをするサンプルコードはありますか?
4 に答える
本当に画像しかなく、その上にツールチップが必要な場合は、ここに 30 秒の説明があります。
- サブクラス JPanel
- paint() メソッドをオーバーライドして画像を描画する
- いくつかの Shape オブジェクト (多角形、四角形など) を「建物」として定義し、テキスト ツールチップ文字列を指定します。
- JPanel サブクラスで getTooltip をオーバーライドします。各呼び出しで Shape オブジェクトを反復処理し、ポイントが形状の内側にあるかどうかをテストします (形状にはこのためのメソッドがあります)。形状に適したツールチップを返すか、マウスが形状の上にない場合は null を返します
- ロールオーバー効果が必要な場合は、MouseMotionListener を登録し、それを使用して「ホバー」形状を見つけます。repaint() を呼び出して、特別な方法で「ホバー」をレンダリングします。
- ブーム!あなたは終わった
ヒント: ほとんどの場合、JPanel を TooltipManager に登録する必要があります。
リンク先の例のようにマップが本当に単純な場合は、java (または javaFX 全体) の使用を避けることを強くお勧めします。JavaScript DHTML マッピング API のいずれかを使用して、必要なことを行うことができます。見る
- Google マップ API
- OpenLayers
Javaはやり過ぎです。アプレットは読み込みが遅く、さまざまな環境で適切に展開するのが困難です。アプリケーション全体を自分で作成して保守するよりも、KML ファイル (または同等のもの) を公開して、他の人のマップを利用する方が適切です。
JxMaps製品をご覧ください。Java デスクトップ アプリケーションにインタラクティブ マップを追加する機能を提供します。
JavaFX は、このタイプのアプリケーションに適した候補です。JavaFX スクリプトの構文に慣れるには少し時間がかかりますが、速度に慣れると、グラフィカル/GUI コンポーネントを簡単に作成できます。
また、アプリケーションに役立つ可能性がある既存の Java API および Web サービスにフックすることもできます。
あなたが説明したものと同様のアプリについては、こことここをチェックしてください。(Javafx マップの Google も)
JavaFX については、まだ開発の初期段階にあるという警告があります。そのため、今後のリリースでバグが発生する可能性があり、重大な変更が行われる可能性があることを警告してください。