⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 swingdrop.java

📁 北大Java 语言程序设计 ppt课件及源码
💻 JAVA
字号:
import java.awt.*;import java.awt.event.*;import java.awt.datatransfer.*;import java.awt.dnd.*;import java.io.*;import javax.swing.*;public class SwingDrop {    static JTextArea textArea;    public static void main(String[] args) {        JFrame frame = new JFrame("Drop on Me!");        textArea = new JTextArea(20, 40);        textArea.setLineWrap(true);        JScrollPane scroller = new JScrollPane(textArea);        frame.setContentPane(scroller);        textArea.setDropTarget(new DropTarget(textArea, new TextAreaTarget(textArea)));        frame.pack();        frame.show();    }}class TextAreaTarget implements DropTargetListener {    JTextArea textArea;    public TextAreaTarget(JTextArea area) {       textArea = area;    }    public void dragEnter(DropTargetDragEvent e) {        System.err.println("[Target] dragEnter");        e.acceptDrag(DnDConstants.ACTION_COPY);    }    public void dragOver(DropTargetDragEvent e) {        e.acceptDrag(DnDConstants.ACTION_COPY);        System.err.println("[Target] dragOver");    }    public void dragExit(DropTargetEvent e) {        System.err.println("[Target] dragExit");    }    public void drop(DropTargetDropEvent e) {        System.err.println("[Target] drop");        DropTargetContext targetContext = e.getDropTargetContext();        boolean outcome = false;        if ((e.getSourceActions() & DnDConstants.ACTION_COPY) != 0)            e.acceptDrop(DnDConstants.ACTION_COPY);        else {            e.rejectDrop();            return;        }        DataFlavor[] dataFlavors = e.getCurrentDataFlavors();        DataFlavor   transferDataFlavor = null;        System.err.println(DataFlavor.plainTextFlavor.getMimeType());        for (int i = 0; i < dataFlavors.length; i++) {            System.err.println(dataFlavors[i].getMimeType());            if (DataFlavor.plainTextFlavor.equals(dataFlavors[i])) {                System.err.println("matched");                transferDataFlavor = dataFlavors[i];                break;            }        }        if (transferDataFlavor != null) {            Transferable t  = e.getTransferable();            InputStream  is = null;            try {                System.err.println("get stream");                is = (InputStream)t.getTransferData(transferDataFlavor);            } catch (IOException ioe) {                ioe.printStackTrace();                System.err.println(ioe.getMessage());                targetContext.dropComplete(false);                return;            } catch (UnsupportedFlavorException ufe) {                ufe.printStackTrace();                System.err.println(ufe.getMessage());                targetContext.dropComplete(false);                return;            }            if (is != null) {                try {                    Reader converter = new InputStreamReader(is);                    StringWriter sWriter = new StringWriter();                    boolean more = true;                    while (more) {                        int c = converter.read();                        if (c != -1) {                            sWriter.write(c);                          } else {                            more = false;                        }                    }                    textArea.append(sWriter.toString().trim());                    outcome = true;                } catch (Exception ex) {                    ex.printStackTrace();                    System.err.println(ex.getMessage());                    targetContext.dropComplete(false);                    return;                }            } else                outcome = false;        }        targetContext.dropComplete(outcome);    }    public void dragScroll(DropTargetDragEvent e) {    }    public void dropActionChanged(DropTargetDragEvent e) {        System.err.println("[Target] dropActionChanged");    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -