Contoh implementasi drag and drop Java
Fungsi drag and drop diimplementasikan di Swing. Kodenya sangat sederhana dan memiliki komentar. Lihat sendiri efek yang dijalankannya adalah sebagai berikut:
Copy kode kodenya sebagai berikut:
paket com;
import java.awt.*;
impor java.awt.datatransfer.DataFlavor;
impor java.awt.dnd.DnDConstants;
impor java.awt.dnd.DropTarget;
impor java.awt.dnd.DropTargetAdapter;
impor java.awt.dnd.DropTargetDropEvent;
impor java.io.File;
impor java.util.List;
import javax.swing.*;
/**
* Contoh kode drag and drop Java yang paling sederhana
* @penulis Liu Xianan
* 24 Januari 2013
*/
DragTest kelas publik memperluas JFrame
{
Panel JPanel;//Panel untuk menerima drag dan drop
Uji Seret publik()
{
panel = JPanel baru();
panel.setBackground(Warna.KUNING);
getContentPane().add(panel, BorderLayout.CENTER);
setUkuran(500, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLokasi(400, 200);
setTitle("Contoh drag and drop paling sederhana: drag and drop file di bawah (20130124)");
drag();//Aktifkan drag dan drop
}
public static void main(String[] args) memunculkan Pengecualian
{
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");//Mengatur kulit
DragTest baru().setVisible(true);;
}
public void drag()//Metode drag ditentukan
{
//Panel mewakili kontrol yang akan diseret dan dilepaskan
DropTarget baru(panel, DnDConstants.ACTION_COPY_OR_MOVE, DropTargetAdapter() baru
{
@Mengesampingkan
public void drop(DropTargetDropEvent dtde)//Tulis ulang metode drop adaptor
{
mencoba
{
if (dtde.isDataFlavorSupported(DataFlavor.javaFileListFlavor))//Jika format file yang diseret didukung
{
dtde.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);//Menerima data yang diseret
Daftar<File> daftar = (Daftar<File>) (dtde.getTransferable().getTransferData(DataFlavor.javaFileListFlavor));
Suhu string="";
untuk(File file:daftar)
temp+=file.getAbsolutePath()+";/n";
JOptionPane.showMessageDialog(null, suhu);
dtde.dropComplete(true);//Menunjukkan bahwa operasi drag and drop telah selesai
}
kalau tidak
{
dtde.rejectDrop(); // Jika tidak, tolak data yang diseret
}
}
tangkapan (Pengecualian e)
{
e.printStackTrace();
}
}
});
}
}