Java.use(better,Jython)《6.1》TransferHandler: DnD
《前の記事|記事一覧|次の記事》
Java.use(better, Jython)
気軽に Swing:FIFA ワールドカップへの道《6》
■ Swing:TransferHandler
ラベルは、情報を提示するのが目的で、ボタンのように処理を起動しません。しかし、ドラッグ&ドロップを活用すると、処理を起動する部品としても利用できます。また、その対象ごとに異なる処理を割り当てることで、柔軟な対処が可能になります。
【例題1a】ラベルをドラッグ&ドロップして、テキスト領域に表示したい。
ラベルの上にマウスカーソルを移動すると、ツールチップが現われます。
1)ラベルの上にマウスカーソルを移動して、マウスボタンを押したまま、2)テキスト領域までドラッグ&ドロップすると、3)ラベルと同じ文字列が表示されます。これを実現したのが、次のコードです。
def ex_DnD_JLabel(): def mousePressed(e): comp = e.source comp.transferHandler.exportAsDrag( comp, # holding the data to be transferred e, # triggered the transfer TransferHandler.COPY, ) iconView = JPanel(layout=GridLayout(-1, 1)) for e in "Japan", "Canada", "Virgin Islands": iconView.add(JLabel( icon=ImageIcon("Flags/%s.gif"%e), text=e, toolTipText=e, mousePressed=mousePressed, transferHandler=TransferHandler("text"), # Here goes! (@.@) )) ...
Last updated♪2009/07/28