我正在尝试从applet编写示例文件,但无法正常工作。下面是代码。
小程序
public class PasteImageApplet extends JApplet { Clipboard clipboard; Toolkit toolkit; JLabel lbl; public String getClipboardImageURL(String server) { lbl.setText("pasting image"); String url = ""; try { DataFlavor dataFlavor = DataFlavor.imageFlavor; System.out.println(dataFlavor.getDefaultRepresentationClass()); Object object = null; try { object = clipboard.getContents(null) .getTransferData(dataFlavor); JOptionPane.showMessageDialog(null,"Image found."); try { Writer output = null; String text = "Test Write File"; File file = new File("write.txt"); output = new BufferedWriter(new FileWriter(file)); output.write(text); output.close(); } catch(Exception ex) { JOptionPane.showMessageDialog(null,"Error writing file"+ex); return "" ; } //return ""; } catch (Exception e) { JOptionPane.showMessageDialog(null, "No image found."); return ""; } } catch (Exception e) { JOptionPane.showMessageDialog(null, "Error."+e); return ""; } return url; } public void init() { lbl = new JLabel(""); lbl.setText("applet started"); add(lbl); toolkit = Toolkit.getDefaultToolkit(); clipboard = toolkit.getSystemClipboard(); } }
的HTML
<html> <head> <title>Clipboard image demo</title> <script type="text/javascript"> function loadApplet() { // Deferred load to display text first document.getElementById("applet").innerHTML = '<object id="paste-image" classid="java:PasteImageApplet.class" type="application/x-java-applet" archive="tst.jar" width="1" height="1"></object>'; } function getImage() { obj = document.getElementById('paste-image'); postTo = "http://localhost/PasteImageApplet/PasteImageApplet/Web/shoot.php"; // Change this to your URL image = obj.getClipboardImageURL(postTo); if (image) { url = "shots/" + image; document.getElementById("target").src = url; document.getElementById("url").value = document.getElementById("target").src; // to get full path, hack, I know ;) document.getElementById("container").style.display = ""; } } </script> <body onload="loadApplet();"> <p> Copy some image data to your clipboard, accept the applet (it only accesses the clipboard) and click the button :-) <a href="http://lassebunk.dk/2009/07/19/using-the-clipboard-to-post-images/">See a blog post about this demo</a> </p> <p> <div id="applet"></div> <input type="button" value="Paste it!" onclick="getImage();"> </p> <div id="container" style="display: none;"> <input type="text" id="url" style="width: 700px;"><br /> <iframe id="target" width="700" height="400"></iframe> </div> </body> </html>
我也没有得到任何错误。请指教。
这是因为小程序位于其自己的沙箱中,在沙箱中它们需要特殊权限才能执行某些操作,例如读取或写入客户端计算机的磁盘。记住,小程序是在客户端计算机的上下文中执行的,它们是客人并且需要遵循内部规则
查看小程序可以做什么和不能做什么以获取更多详细信息