- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了小程序来从剪贴板捕获图像。当我在 HTML 中运行小程序时,它会抛出 accesscontrolException 访问被拒绝 (java.awt.awtpermission accessclipboard)。
PasteImageApplet.Java
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.Toolkit;
import java.awt.Color;
import java.awt.image.BufferedImage;
import java.awt.image.ImageObserver;
import javax.swing.JApplet;
import javax.swing.JOptionPane;
import javax.swing.ImageIcon;
import java.io.ByteArrayOutputStream;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import com.sun.image.codec.jpeg.JPEGCodec;
import java.net.URL;
import java.net.URLConnection;
import java.io.InputStream;
import javax.swing.JLabel;
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);
}catch (Exception e){
JOptionPane.showMessageDialog(null, "No image found.");
return "";
}
BufferedImage img = (BufferedImage) object;
BufferedImage bimg = null;
int w = img.getWidth(null);
int h = img.getHeight(null);
bimg = new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB);
ImageIcon ii = new ImageIcon(img);
ImageObserver is = ii.getImageObserver();
bimg.getGraphics().setColor(new Color(255, 255, 255));
bimg.getGraphics().fillRect(0, 0, w, h);
bimg.getGraphics().drawImage(ii.getImage(), 0, 0, is);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
JPEGImageEncoder jpeg = JPEGCodec.createJPEGEncoder(stream);
jpeg.encode(bimg);
URL u = new URL(server);
URLConnection con = u.openConnection();
//String boundary = "-----------------------------7d637a1aa100de";
con.setDoOutput(true);
con.getOutputStream().write(stream.toByteArray());
/*con.getOutputStream().write(((String)
"--"+boundary+"\r\n "+
"Content-Disposition: form-data; name=\"img\"; filename=\"filename\"\r\n"+
"Content-Type: image/jpeg\r\n "+
"Content-Transfer-Encoding: base64\r\n\r\n" +
Base64.encodeBytes(stream.toByteArray())).getBytes());*/
con.connect();
InputStream inputStream = con.getInputStream();
byte [] urlBytes = new byte [inputStream.available()];
inputStream.read(urlBytes);
url = new String(urlBytes);
System.out.print(url);
lbl.setText("image pasted");
} catch (Exception exc){
lbl.setText("an error occurred: " + exc.getMessage());
/*if (ShowExceptions.ShowExceptions)
exc.printStackTrace();*/
}
return url;
}
public void init() {
lbl = new JLabel("");
lbl.setText("applet started");
add(lbl);
toolkit = Toolkit.getDefaultToolkit();
clipboard = toolkit.getSystemClipboard();
}
}
索引.html
<html>
<title>The Hello, World Applet</title>
<hr>
<applet code="PasteImageApplet.class" width="320" height="120">
</hr>
</html>
图片
最佳答案
对 jar 进行签名,并将访问剪贴板的主要代码放入 AccessController 中,如下所示
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
// perform the security-sensitive operation here
return null;
}
});
关于java - 小程序 - java.awt.awtpermission accessclipboard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17741875/
我的代码就像 getWaitMessageBox().setAlwaysOnTop(true);。 这会抛出 java.security.AccessControlException:访问被拒绝(ja
我创建了小程序来从剪贴板捕获图像。当我在 HTML 中运行小程序时,它会抛出 accesscontrolException 访问被拒绝 (java.awt.awtpermission accesscl
我正在使用提供在线数据备份的桌面应用程序。在我的应用程序中,我试图实现自动软件更新功能。为此,我正在使用 java web start。我已经完成了以下使用java web start的过程。 1>
当我加载我的小程序时,我收到异常 java.security.AccessControlException:访问被拒绝(“java.awt.AWTPermission”“accessClipboard
我有一个网络应用程序,需要能够在客户端计算机上本地打开文件,并且能够在编辑后保存文件。 Web 应用程序在服务器上的一个文件夹中生成一个文档,该文件夹通过 WebDAV 和 FTP 共享,并且该文件夹
我是一名优秀的程序员,十分优秀!