java如何实现将文件拖入文本框中并在其显示路径

java如何实现将文件拖入文本框中并在其显示路径

先看结果

生成结果

代码

代码.

import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;

import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.TransferHandler;

public class test {
	public static  void main(String[] args) throws Exception, IOException{
		
		JFrame frame=new JFrame("将文件拖入文本框中并显示路径");
		frame.setBounds(600, 300, 600, 300);//设置大小和位置		
		JTextField p1= new JTextField(26);		
		p1.setText("可以将文件拖入该窗口,或者点击右边的浏览 -->");
		JButton b1=new JButton("浏览");
		//拖入文件
		p1.setTransferHandler(new TransferHandler()
        {
            public boolean importData(JComponent comp, Transferable t) {
                try {
                    Object o = t.getTransferData(DataFlavor.javaFileListFlavor);
                    
                    String filepath = o.toString();
                    if (filepath.startsWith("[")) {
                        filepath = filepath.substring(1);
                    }
                    if (filepath.endsWith("]")) {
                        filepath = filepath.substring(0, filepath.length() - 1);
                    }
                    p1.setText(filepath);
                   
                    return true;
                }
                catch (Exception e) {
                	
                }
                return false;
            }
            @Override
            public boolean canImport(JComponent comp, DataFlavor[] flavors) {
                for (int i = 0; i < flavors.length; i++) {
                    if (DataFlavor.javaFileListFlavor.equals(flavors[i])) {
                        return true;
                    }
                }
                return false;
            }
        });
		
		//按钮浏览
		b1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
            	JFileChooser fc2 = new JFileChooser("./");
            	fc2.showOpenDialog(b1);
            	String lu =fc2.getSelectedFile().getAbsolutePath(); 
            	p1.setText(lu);
            }
         
        });
		
		
		frame.setLayout(null);//没有布置可以用这个设计
		p1.setBounds(50,100,450,30);
		b1.setBounds(510,100,60,30);//设置组件大小和位置
		
		frame.add(p1);
		frame.add(b1);//加入组件
		
		frame.setVisible(true);//显示
		frame.setResizable(false);//固定大小
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//可以关闭窗口
	}	
	
}


发布了15 篇原创文章 · 获赞 0 · 访问量 242

猜你喜欢

转载自blog.csdn.net/qq_44796882/article/details/99720130