プログラマメモ2 - programmer no memo2

drop me 最小サンプル 2008/08/15
2008/08/16

Javaです。

画面パネルにファイルをドラッグして処理するためのサンプルです。
JComponentにsetTransferHandlerがあります。
それにjavax.swing.TransferHandlerを設定します。

まず、importできるか確認して、オッケーなら、importDataが呼ばれます。
TransferSupportはjava6からのようですね。

参考
「Java SE 6完全攻略」第31回 Swingでのドラッグ&ドロップ その3:ITpro


import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.TransferHandler;

public class DropMe {

public static void main(String[] args) {

JFrame frame = new JFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanel panel = new JPanel();
panel.setTransferHandler(new TransferHandler() {

private static final long serialVersionUID = 1L;

@Override
public boolean canImport(TransferSupport support) {
System.out.println("*** canImport");
return true;
}

@Override
public boolean importData(TransferSupport support) {
System.out.println("*** importData");
return super.importData(support);
}

});

frame.getContentPane().add(panel);
frame.setVisible(true);

}

}

: