用Java怎么实现类似于QQ那样用鼠标拖拽一个图片到输入框然后就能发出去?

Q的输入框与显示框之间的分隔部分是什么组件?... Q的输入框与显示框之间的分隔部分是什么组件? 展开
 我来答
方杭尽
2010-02-05 · TA获得超过1万个赞
知道大有可为答主
回答量:1296
采纳率:0%
帮助的人:649万
展开全部
把图片或文件发出去不是难事,主要是拖动作用的实现。

以下代码实现了当拖动文件到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();
}
}
}
cfwzw312
2010-02-05 · TA获得超过655个赞
知道小有建树答主
回答量:358
采纳率:0%
帮助的人:192万
展开全部
要调用操作系统的API的。没做过的人。一时是解决不了的。只有想不到,没有办不到,你一定能成功
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
du651803724
2010-02-04 · TA获得超过289个赞
知道小有建树答主
回答量:325
采纳率:0%
帮助的人:0
展开全部
弄不起来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式