import java.awt.datatransfer.DataFlavor;
import java.awt.dnd.*;
import java.io.File;
import java.util.List;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
public class 드래그앤드랍1 implements DropTargetListener {
JTextArea myPanel;
protected DropTarget dropTarget;
JFrame f;
public 드래그앤드랍1(
JFrame f) {
// TODO Auto-generated constructor stub
this.f = f;
dropTarget = new DropTarget(f, this);
// f.setDropTarget(dropTarget);
}
public static void main(
String[] args) {
드래그앤드랍1 frame = new 드래그앤드랍1(new JFrame());
// JFrame frame = new JFrame();
// frame.f.add(myPanel);
frame.f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.myPanel = new JTextArea();
frame.f.add(frame.myPanel);
frame.dropTarget = new DropTarget(frame.myPanel, frame);
frame.f.setSize(500, 500);
frame.f.setVisible(true);
}
@Override
public void dragEnter(
DropTargetDragEvent dtde) {
// TODO Auto-generated method stub
}
@Override
public void dragExit(
DropTargetEvent dte) {
// TODO Auto-generated method stub
}
@Override
public void dragOver(
DropTargetDragEvent dtde) {
// TODO Auto-generated method stub
}
@Override // 마우스 버튼을 놓았을때
public void drop(
DropTargetDropEvent dtde) {
// TODO Auto-generated method stub
//드래그 액션이 복사일경우
if ((dtde.getDropAction() &
DnDConstants.ACTION_COPY_OR_MOVE) != 0) {
// dtde.acceptDrop(dtde.getDropAction());
try {
dtde.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);// 복사 만 받아들임
List<File> droppedFiles = (List<File>) dtde
.getTransferable().getTransferData(
DataFlavor.javaFileListFlavor);//파일 목록을 리스트로 받아옴
for (File file : droppedFiles) {//리스트이 각 행마다
/* NOTE:
* When I change this to a println,
* it prints the correct path */
//System.out.println(file.getAbsolutePath());
// myPanel.setText(file.getAbsolutePath());
myPanel.append(file.getAbsolutePath() +"\n");
//myPanel.setCaretPosition(myPanel.getText().length() - 1);
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
@Override
public void dropActionChanged(
DropTargetDragEvent dtde) {
// TODO Auto-generated method stub
}
}
'프로그래밍 > 자바' 카테고리의 다른 글
키 입력받기, 내부 클래스 이용 (0) | 2015.07.25 |
---|---|
JFrame 프레임기본 (0) | 2015.07.25 |
리스트박스 List (0) | 2015.07.25 |
파일 경로 분해 (0) | 2015.07.25 |
드래그앤드랍 개체.setDropTarget(new DropTarget() {} 이용 (0) | 2015.07.25 |