ammm... no se como hacer eso que pides, pero una vez que tuve q hacer algo parecido lo soluciones podiendo un JDialog en una esquina de la pantalla la cual se mantenia todo el tiempo visible y sobre cualkier cosa (setAlwaysOnTop(true)), la cual cada vez que necesitaba mandar algo al portapales, seleccionaba lo que necesitaba, y lo arrastraba hasta donde se encontraba el JDialog... y..... pues no es lo que necesitas, pero funciona.
Otra opción que me dio mi maestro es hacer un "enganche" o "hook" al mouse, para lo cual necesitas usar c++ y pasarselo a java como nativo, en otras palabra, esta dificil de hacer, pues ya se trata de interactuar con el sistema operativo, yo no lo logre... jajaja..
import java.awt.BorderLayout;
import java.net.URL;
import java.awt.Toolkit;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.dnd.DnDConstants;
import java.awt.dnd.DropTarget;
import java.awt.dnd.DropTargetDragEvent;
import java.awt.dnd.DropTargetDropEvent;
import java.awt.dnd.DropTargetEvent;
import java.awt.dnd.DropTargetListener;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.Image;
import java.awt.Color;
import java.awt.Graphics;
import java.net.Socket;
int puerto2;
boolean estado=false;
public ClipBoard () {
ta.
setBackground(Color.
WHITE); setSize(100, 100);
setLocation(15, 15);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
setAlwaysOnTop(true);
}
System.
out.
println ( "entro" ) ; }
try {
int i=0;
DataFlavor [] flavors
= tr.
getTransferDataFlavors () ; if ( flavors [ i ] .isFlavorJavaFileListType ()) {
path=""+tr.getTransferData ( flavors [ i ]);
path=path.substring(1,path.length()-1);
ta.append (path+"\n");
estado=true;
repaint();
dtde.dropComplete ( true ) ;
return ;
}
dtde.rejectDrop () ;
}
System.
out.
println("1_Clipboard"); e.printStackTrace () ;
dtde.rejectDrop () ;
}
}
public static void main
(String arg
[]){ ClipBoard clip=new ClipBoard();
}
}
Esta es una pequeña clase, lo que haces, es que cualquier archivo que arrastres al jdialog te devuelve la ruta donde esta almacenada (aunque puedes agregarle que haga mas cosa, solo hay que investigar un poco), pero parece que solo funciona en windows, lo cheque en linux y me parece, mas no estoy seguro de que no funciona, espero te sirva.
Saludos
Gracias por tu idea danyelk_6u5 pero me gustaría saber como hacerlo mediante un evento directo.
De todas formas agradezco tú ayuda
Saludos