SWTアプリでドラッグ & ドロップ
ソースコードはこんな感じです。
省略しているところもあるので、雰囲気が伝わればいいかなと。
複数ファイルを突っ込んだときにあれれ?みたいな突っ込みはなしで ^^;;
テキストボックスのところ
RowData rowdata = new RowData(); rowdata.width = 400; Text sourceFilePath = new Text(fileComposite, SWT.SINGLE|SWT.BORDER); sourceFilePath.setText(""); sourceFilePath.setLayoutData(rowdata); DropTarget target = new DropTarget(sourceFilePath, DND.DROP_DEFAULT|DND.DROP_COPY); FileTransfer transfer = FileTransfer.getInstance(); Transfer[] types = new Transfer[]{transfer}; target.setTransfer(types); target.addDropListener(new FileDropListener());
リスナー
private class FileDropListener extends DropTargetAdapter { @Override public void dragEnter(DropTargetEvent event){ event.detail = DND.DROP_COPY; } @Override public void drop(DropTargetEvent event){ String[] filePaths = (String[])event.data; for (String filePath : filePaths) { if (filePath.endsWith(".pdf")) { sourceFilePath.setText(filePath); break; } } } }
実物
自炊補助(PDF編集)ツールのダウンロードはこちら