2

JLabels を使用して、ドラッグ アンド スナップ タイプのものを実装しようとしています。基本的に、JPanel は、画面の周りの指定されたボックスにある JLabel で起動します (すべての JLabels と Box は同じサイズです)。次に、ユーザーが JLabel をボックスにドラッグして、ボックスに「スナップ」できるようにしたいと思います。つまり、マウスがボックスに近づくと、プログラムはその JLabel をそのボックスにスナップすることを認識します。

マウス リスナーとマウスをドラッグして、面倒な作業を行い、多くのレンダリングを行うことができます (既にこれを開始しており、あまりきれいではありません)。しかし、誰もが知っているウェブ上の何か、またはJavaに組み込まれている何かが私を助けてくれるのではないかと思っていました。

注: これはドラッグ アンド ドロップに関する質問ではありません。

4

3 に答える 3

1

ドラッグ アンド ドロップは、要件の特殊な領域です。

コンポーネントのTransferHandlerAPIの実装を見てみましょう。Swing組み込みコンポーネントでは非常にうまく機能し、カスタム コンポーネントで動作するようにするには多少の作業が必要ですが、それ以外の場合は拡張できません (カスタム カーソルとドラッグ グラフィックを見ています)。

問題は、どのツールキット/API/フレームワークも、そのターゲット デザインの制約内でのみ機能することです。

DnD API のさまざまな要素を分離し、リスナーを登録し、イベント処理などを行うことで、生活を「少し」楽にすることができます。これにより、ソリューションの要件にもう少し集中できるようになりますが、現時点では、あなたが得ることができる限り。

たとえば、私が書いた API はおそらくあなたのニーズを満たさないでしょう。なぜなら、私が扱っていた一連の特定の問題を解決するために書いたからです。

ただのMHO

于 2012-08-28T00:13:47.940 に答える
0

ドラッグ アンド ドロップ パッケージを調べます: http://docs.oracle.com/javase/7/docs/api/java/awt/dnd/package-summary.html

于 2012-08-28T00:03:58.323 に答える
0

Java の「snap-to-grid」の例を検索してから、それに応じて変更して、GUI コンポーネントをペアにしますか?

于 2012-08-28T01:57:54.823 に答える