JButton btn = new JButton("选择文件夹");
创新互联公司-专业网站定制、快速模板网站建设、高性价比平昌网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式平昌网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖平昌地区。费用合理售后完善,10余年实体公司更值得信赖。
ImageIcon icon = new ImageIcon("D:\\1.jpg");
btn.setIcon(icon);
这样可以给按钮添加图片。
把图片或文件发出去不是难事,主要是拖动作用的实现。
以下代码实现了当拖动文件到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();
}
}
}
两种思路.
,前台自己做一个表情库,收到服务器的数据(这里我并不知道具体使用scoket做还是轮询或者其他方法暂时只能这么说).在对应显示相应表情
后台保存好图片的DataUri 或其他类似数据到数据源中直接发送给前台显示