Skip to content

Commit 6d0d78d

Browse files
committed
Implemented drag and drop.
1 parent f305a76 commit 6d0d78d

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

src/simplejavatexteditor/UI.java

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,17 @@
3939

4040
import javax.swing.*;
4141
import java.awt.*;
42+
import java.awt.datatransfer.DataFlavor;
43+
import java.awt.datatransfer.Transferable;
44+
import java.awt.dnd.DropTarget;
45+
import java.awt.dnd.DropTargetDragEvent;
46+
import java.awt.dnd.DropTargetDropEvent;
47+
import java.awt.dnd.DropTargetEvent;
48+
import java.awt.dnd.DropTargetListener;
4249
import java.awt.event.*;
4350
import java.io.BufferedWriter;
4451
import java.io.File;
52+
import java.io.FileInputStream;
4553
import java.io.FileReader;
4654
import java.io.FileWriter;
4755
import java.util.ArrayList;
@@ -122,6 +130,7 @@ public UI() {
122130

123131
/* SETTING BY DEFAULT WORD WRAP ENABLED OR TRUE */
124132
textArea.setLineWrap(true);
133+
DropTarget dropTarget = new DropTarget(textArea, dropTargetListener);
125134

126135
// Set an higlighter to the JTextArea
127136
textArea.addKeyListener(new KeyAdapter() {
@@ -596,5 +605,53 @@ private void saveFile() {
596605
}
597606
}
598607
}
608+
DropTargetListener dropTargetListener = new DropTargetListener() {
609+
610+
@Override
611+
public void dragEnter(DropTargetDragEvent e) {
612+
}
613+
614+
@Override
615+
public void dragExit(DropTargetEvent e) {
616+
}
617+
618+
@Override
619+
public void dragOver(DropTargetDragEvent e) {
620+
}
621+
622+
@Override
623+
public void drop(DropTargetDropEvent e) {
624+
try {
625+
Transferable tr = e.getTransferable();
626+
DataFlavor[] flavors = tr.getTransferDataFlavors();
627+
for (int i = 0; i < flavors.length; i++) {
628+
if (flavors[i].isFlavorJavaFileListType()) {
629+
e.acceptDrop(e.getDropAction());
630+
631+
try {
632+
String fileName = tr.getTransferData(flavors[i]).toString().replace("[", "").replace("]", "");
633+
FileInputStream fis = new FileInputStream(new File(fileName));
634+
byte[] ba = new byte[fis.available()];
635+
fis.read(ba);
636+
textArea.setText(new String(ba));
637+
fis.close();
638+
}
639+
catch (Exception ex) {
640+
ex.printStackTrace();
641+
}
642+
e.dropComplete(true);
643+
return;
644+
}
645+
}
646+
} catch (Throwable t) {
647+
t.printStackTrace();
648+
}
649+
e.rejectDrop();
650+
}
651+
652+
@Override
653+
public void dropActionChanged(DropTargetDragEvent e) {
654+
}
655+
};
599656

600657
}

0 commit comments

Comments
 (0)