드래그 앤 드롭 예제의 Java 구현
드래그 앤 드롭 기능은 Swing에서 구현됩니다. 코드는 매우 간단하며 실행 효과는 다음과 같습니다.
다음과 같이 코드 코드를 복사합니다.
패키지닷컴;
import java.awt.*;
import java.awt.datatransfer.DataFlavor;
import java.awt.dnd.DnDConstants;
import java.awt.dnd.DropTarget;
import java.awt.dnd.DropTargetAdapter;
import java.awt.dnd.DropTargetDropEvent;
java.io.파일 가져오기;
java.util.List 가져오기;
import javax.swing.*;
/**
* 가장 간단한 Java 드래그 앤 드롭 코드 예
* @저자 류 시아난
* 2013년 1월 24일
*/
공개 클래스 DragTest는 JFrame을 확장합니다.
{
JPanel 패널;//드래그 앤 드롭을 허용하는 패널
공개 드래그테스트()
{
패널 = 새로운 JPanel();
panel.setBackground(Color.YELLOW);
getContentPane().add(panel, BorderLayout.CENTER);
setSize(500, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocation(400, 200);
setTitle("가장 간단한 드래그 앤 드롭 예: 아래 파일(20130124)을 드래그 앤 드롭합니다.");
drag();//드래그 앤 드롭 활성화
}
public static void main(String[] args)에서 예외가 발생했습니다.
{
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");//스킨 설정
새로운 DragTest().setVisible(true);;
}
public void drag()//드래그 메소드 정의
{
//패널은 드래그 앤 드롭할 컨트롤을 나타냅니다.
새로운 DropTarget(패널, DnDConstants.ACTION_COPY_OR_MOVE, 새로운 DropTargetAdapter()
{
@보수
public void drop(DropTargetDropEvent dtde)//어댑터의 드롭 방법을 다시 작성합니다.
{
노력하다
{
if (dtde.isDataFlavorSupported(DataFlavor.javaFileListFlavor))//드래그된 파일 형식이 지원되는 경우
{
dtde.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);//드래그된 데이터 수신
List<파일> list = (List<파일>) (dtde.getTransferable().getTransferData(DataFlavor.javaFileListFlavor));
문자열 온도="";
for(파일 파일:목록)
temp+=file.getAbsolutePath()+";/n";
JOptionPane.showMessageDialog(null, 임시);
dtde.dropComplete(true);//드래그 앤 드롭 작업이 완료되었음을 나타냅니다.
}
또 다른
{
dtde.rejectDrop(); // 그렇지 않으면 드래그된 데이터를 거부합니다.
}
}
잡기 (예외 e)
{
e.printStackTrace();
}
}
});
}
}