天天看點

Java 拖拽檔案到文本框

先看一個例子:

Java 拖拽檔案到文本框
Java 拖拽檔案到文本框
Java 拖拽檔案到文本框

核心代碼:

Java 拖拽檔案到文本框

/*** 

     * 拖拽檔案到文本框 

     * @param component 

     */  

    public void drag(final component component)// 定義的拖拽方法  

    {  

        // panel表示要接受拖拽的控件  

        new droptarget(component, dndconstants.action_copy_or_move,  

                new droptargetadapter() {  

                    @override  

                    public void drop(droptargetdropevent dtde)// 重寫擴充卡的drop方法  

                    {  

                        try {  

                            if (dtde.isdataflavorsupported(dataflavor.javafilelistflavor))// 如果拖入的檔案格式受支援  

                            {  

                                dtde.acceptdrop(dndconstants.action_copy_or_move);// 接收拖拽來的資料  

                                list<file> list = (list<file>) (dtde  

                                        .gettransferable()  

                                        .gettransferdata(dataflavor.javafilelistflavor));  

//                              string temp = "";  

//                              for (file file : list)  

//                                  temp += file.getabsolutepath() + ";\n";  

//                              joptionpane.showmessagedialog(null, temp);  

                                dragresponse(list,component);  

                                dtde.dropcomplete(true);// 訓示拖拽操作已完成  

                            } else {  

                                dtde.rejectdrop();// 否則拒絕拖拽來的資料  

                            }  

                        } catch (exception e) {  

                            e.printstacktrace();  

                        }  

                    }  

                });  

    }  

     * 預設實作 

    @override  

    protected void dragresponse(list<file> list,component component) {  

        string filepath=list.get(0).getabsolutepath();  

        if(component instanceof  jtextcomponent){  

            jtextcomponent text=(jtextcomponent)component;  

            //把文本框的内容設定為拖拽檔案的全路徑  

            text.settext(filepath);  

        }  

 調用:

Java 拖拽檔案到文本框

項目采用maven 建構,項目結構:

Java 拖拽檔案到文本框