當前位置:編程學習大全網 - 源碼下載 - 用Java怎麽實現類似於QQ那樣用鼠標拖拽壹個圖片到輸入框然後就能發出去?

用Java怎麽實現類似於QQ那樣用鼠標拖拽壹個圖片到輸入框然後就能發出去?

把圖片或文件發出去不是難事,主要是拖動作用的實現。

以下代碼實現了當拖動文件到Panel上時能獲得文件對象,其余的妳實現發送就可以了。

import java.awt.BorderLayout;

import java.awt.datatransfer.*;

import java.io.*;

import java.util.List;

import javax.swing.*;

public class TestFrame extends javax.swing.JFrame {

private JPanel panel;

public static void main(String[] args) {

SwingUtilities.invokeLater(new Runnable() {

public void run() {

TestFrame inst = new TestFrame();

inst.setLocationRelativeTo(null);

inst.setVisible(true);

}

});

}

public TestFrame() {

super();

initGUI();

}

private void initGUI() {

try {

setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);

{

panel = new JPanel();

getContentPane().add(panel, BorderLayout.CENTER);

panel.setTransferHandler(new TransferHandler() {

public boolean canImport(JComponent comp, DataFlavor[] transferFlavors) {

return true;

}

public boolean importData(JComponent comp, Transferable t) {

try {

if (t.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) {

List files;

files = (List) t

.getTransferData(DataFlavor.javaFileListFlavor);

for (int i = 0; i < files.size(); i++) {

File f = (File) files.get(i);

System.out.println(f.getAbsolutePath());

}

return true;

}

} catch (UnsupportedFlavorException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return super.importData(comp, t);

}

});

}

pack();

setSize(400, 300);

} catch (Exception e) {

e.printStackTrace();

}

}

}

  • 上一篇:看手相免費測試掃壹掃 如何看自己的掌紋
  • 下一篇:微波爐的基本結構有哪些微波爐的選購指標是什麽
  • copyright 2024編程學習大全網