В Интернете я нашел хороший ресурс по использованию перетаскивания.Вот некоторые классы / вещи, которые вы, возможно, захотите исследовать:
java.awt.dnd.*
Я практически скопировал это из учебника в Интернете, но вот некоторый код (не мой, но протестированный, и он работает):
public class MyFrame extends JFrame
{
// insert other code here
JLabel myLabel = new JLabel("My stuff here");
// Create the drag and drop listener
MyDragDropListener myDragDropListener = new MyDragDropListener(this);
// Connect the label with a drag and drop listener
new DropTarget(myLabel, myDragDropListener);
// then just add the label
// also have a method something like "get" which will be used so that the listener can send
// the list of files dropped here, and you can process it here
}
Теперь для MyDragDropListener.
import java.awt.dnd.*;
import java.awt.datatransfer.*;
import java.io.File;
import java.util.List;
public class MyDragDropListener implements DropTargetListener
{
MyFrame frame; // initialize in a constructor that takes in the frame
@Override
public void dragEnter(DropTargetDragEvent event) {
}
@Override
public void dragExit(DropTargetEvent event) {
}
@Override
public void dragOver(DropTargetDragEvent event) {
}
@Override
public void dropActionChanged(DropTargetDragEvent event) {
}
@Override
public void drop(DropTargetDropEvent event)
{
// This is the main chunk of the drag and drop.
event.acceptDrop(DnDConstants.ACTION_COPY);
Transferable transferable = event.getTransferable();
DataFlavor[] flavors = transferable.getTransferDataFlavors();
for(DataFlavor flavor : flavors)
{
if(flavor.isFlavorJavaFileListType())
{
List myFiles = (List) transferable.getTransferData(flavor);
frame.get(myFiles);
}
}
}
}
Вы можете использовать это для создания JFrame для перетаскивания файлов, а затем проверьте, содержит ли имя файла «.txt» (я не уверен, еслиВ Java есть методы определения типа файла, даже если он не имеет расширений.) Если он содержит «.txt», вы можете открыть его в TextArea.
Если кто-нибудь может помочь мне найти оригинальный учебник /сайт, я был бы очень признателен.Также извините за форматирование ответа.