Java.use(better,Python)《6.2》Swing:TransferHandler

《こちらに移動中です》

2008年4月22日 (火)
記事一覧
Java.use(better, Python) # Jython 導入ガイド

------------ 序 ------------

ここで公開している記事は「キーワード検索 」を利用するための便宜的なものです。詳細は、正式版(「cz16080312.pdf」をダウンロード」 draft@08/03/12)をダウンロードしてご覧ください。

【目次】関連記事
Python/Jython/Swing 入門〕Shall_we_Agile = Java.use(better, Python) # Swing
実際のアプリケーション開発を疑似体験できるように、問題解決に至るまでの紆余曲折を示しながら「繰り返し段階的に」技術を習得するための話題を提 供します。OOP〔Object-Oriented Programming〕を体得するには、五感を通してフィードバックが得られる論理的シミュレーションによって、現実世界を疑似体験するのが効果的で す。この連載で、Java の常識が壊れるかもしれませんが、OOP の可能性は広がります。

【注意】連載の主旨から「先に示したプログラムが後で覆される」事例が含まれます。次の展開(失敗から何を学ぶか/学ばないか)を予想しながら読み進むのも一興です。

------------ 本文 ------------

気軽に Swing〔6〕TransferHandler: DnD

Java.use(better,Swing=Jython) 〜 萬プログラマーのための Python 導入ガイド
本間りす、森こねこ〔著〕 小泉ひよ子とタマゴ倶楽部〔監修〕

■ クラス:TransferHandler

 データ転送を扱うハンドラー TransferHandler は、イベントが発生すると、指定されたコンポーネントのデータを仲介して、他のコンポーネントに転送します。

 ラベルを選択するとイベントが発生して、1)リスナーでもある自身に設定された mousePressed が呼び出されます。すると、2)ハンドラー transferHandler を介して、ラベルが保持するテキスト文字列 text を送信 exportAsDrag します。

public void setTransferHandler(TransferHandler newHandler)

 メソッド setTransferHandler() は、任意のコンポーネントを、ドラッグ&ドロップによるデータ転送の情報源に指定します。引数 newHandler に指定したハンドラーが、コンポーネント間のデータ転送を仲介します。このとき、転送したいデータを規定するプロトコルは、コンポーネントが提供するものに限定されます。

    public void exportAsDrag(
        JComponent comp, InputEvent e, int action)

 メソッド exportAsDrag() は、各プラットホームごとに用意された、ドラッグ&ドロップ操作を起動します。引数 comp には、転送したいデータを保持するコンポーネントを指定します。引数 e には、データ転送を誘因するイベントを指定します。引数 action は、データ転送の動作を規定するもので、COPY/MOVE/LINK が有効です。

■ ラベルを再設定するには

【例題1b】テキストをドラッグ&ドロップして、ラベルを再設定したい。

 1)テキスト領域に入力した文字列を選択して、マウスボタンを押したまま、2)ラベルまでドラッグ&ドロップすると、3)選択した文字列がラベルに表示されます。
〈つづく〉

Last updated♪2009/07/28