본문 바로가기
프로그래밍/자바

드래그앤드랍 implements DropTargetListener

by LillyLt 2015. 7. 25.




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