Implementación Java de ejemplo de arrastrar y soltar
La función de arrastrar y soltar se implementa en Swing. El código es muy simple y tiene comentarios. Compruébelo usted mismo.
Copie el código de código de la siguiente manera:
paquete com;
importar java.awt.*;
importar java.awt.datatransfer.DataFlavor;
importar java.awt.dnd.DnDConstants;
importar java.awt.dnd.DropTarget;
importar java.awt.dnd.DropTargetAdapter;
importar java.awt.dnd.DropTargetDropEvent;
importar java.io.File;
importar java.util.List;
importar javax.swing.*;
/**
* El ejemplo de código de arrastrar y soltar de Java más simple
* @autor Liu Xianan
* 24 de enero de 2013
*/
La clase pública DragTest extiende JFrame
{
Panel JPanel;//Panel para aceptar arrastrar y soltar
prueba de arrastre pública()
{
panel = nuevo JPanel();
panel.setBackground(Color.AMARILLO);
getContentPane().add(panel, BorderLayout.CENTER);
establecerTamaño(500, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
establecerUbicación(400, 200);
setTitle("El ejemplo más simple de arrastrar y soltar: arrastre y suelte el archivo siguiente (20130124)");
drag();//Habilitar arrastrar y soltar
}
public static void main (String[] args) lanza una excepción
{
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");//Establecer la máscara
nuevo DragTest().setVisible(verdadero);;
}
public void drag()//Método de arrastre definido
{
//El panel representa el control que se arrastrará y soltará
nuevo DropTarget(panel, DnDConstants.ACTION_COPY_OR_MOVE, nuevo DropTargetAdapter()
{
@Anular
public void drop(DropTargetDropEvent dtde)//Reescribe el método de caída del adaptador
{
intentar
{
if (dtde.isDataFlavorSupported(DataFlavor.javaFileListFlavor))//Si se admite el formato de archivo arrastrado
{
dtde.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);//Recibir los datos arrastrados
Lista<Archivo> lista = (Lista<Archivo>) (dtde.getTransferable().getTransferData(DataFlavor.javaFileListFlavor));
Cadena temp="";
para (archivo de archivo: lista)
temp+=archivo.getAbsolutePath()+";/n";
JOptionPane.showMessageDialog(nulo, temporal);
dtde.dropComplete(true);//Indica que la operación de arrastrar y soltar se ha completado
}
demás
{
dtde.rejectDrop(); // De lo contrario, rechaza los datos arrastrados
}
}
captura (Excepción e)
{
e.printStackTrace();
}
}
});
}
}