|
39 | 39 |
|
40 | 40 | import javax.swing.*;
|
41 | 41 | 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; |
42 | 49 | import java.awt.event.*;
|
43 | 50 | import java.io.BufferedWriter;
|
44 | 51 | import java.io.File;
|
| 52 | +import java.io.FileInputStream; |
45 | 53 | import java.io.FileReader;
|
46 | 54 | import java.io.FileWriter;
|
47 | 55 | import java.util.ArrayList;
|
@@ -122,6 +130,7 @@ public UI() {
|
122 | 130 |
|
123 | 131 | /* SETTING BY DEFAULT WORD WRAP ENABLED OR TRUE */
|
124 | 132 | textArea.setLineWrap(true);
|
| 133 | + DropTarget dropTarget = new DropTarget(textArea, dropTargetListener); |
125 | 134 |
|
126 | 135 | // Set an higlighter to the JTextArea
|
127 | 136 | textArea.addKeyListener(new KeyAdapter() {
|
@@ -596,5 +605,53 @@ private void saveFile() {
|
596 | 605 | }
|
597 | 606 | }
|
598 | 607 | }
|
| 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 | + }; |
599 | 656 |
|
600 | 657 | }
|
0 commit comments