高分求助!有关applet的问题

socialchen 2012-06-07 11:45:36
编写了一个applet程序,用编译器可以运行,但放入网页中运行就出错,也改过java.policy文件了,但还是出现新的问题:
异常:java.security.AccessControlException: access denied (java.io.FilePermission C:\Documents and Settings\Administrator\Local Settings\Application Data\360Chrome\Chrome\Application\5.3.0.806\test.jpg read)

求高手帮忙解决
...全文
107 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
古布 2012-06-08
  • 打赏
  • 举报
回复
LZ修改的是ie浏览器使用的jre包吗?
找到您的ie浏览器使用的jre包,在这个包下面有个java.policy文件,打开编辑它:
在grant里增加2个语句:
permission java.util.PropertyPermission "file.encoding", "read";
socialchen 2012-06-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

浏览器的安全沙箱,默认是不允许Applet访问本地文件的,这对于最终用户而言太危险了,你随便就可以种病毒了。

合理的做法是:
1、访问打包在jar中的文件,比如用:ClassLoader.getResourceAsStream("xxoo");
2、访问互联网站的文件,也即: http://xxoo/xxoo.jpg
[/Quote]
还有程序运行后,在IE7浏览器中是可以运行,但会有安全提示,是不是就是这个问题啊
socialchen 2012-06-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

浏览器的安全沙箱,默认是不允许Applet访问本地文件的,这对于最终用户而言太危险了,你随便就可以种病毒了。

合理的做法是:
1、访问打包在jar中的文件,比如用:ClassLoader.getResourceAsStream("xxoo");
2、访问互联网站的文件,也即: http://xxoo/xxoo.jpg
[/Quote]
请问你说的第一种方法如何实现?能不能说的详细一点
socialchen 2012-06-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

final Icon icon=new ImageIcon( "1.JPG");
==>
final Icon icon=new ImageIcon( this.getClass().getResource("/1.JPG"));

1.注意图片文件名大小,要一致
2。执行前,清空浏览器缓存,关闭所有浏览器,
3。清空控制面板java Console缓存(如果允许ja……
[/Quote]
谢谢帮助,问题算是解决了
MiceRice 2012-06-08
  • 打赏
  • 举报
回复
浏览器的安全沙箱,默认是不允许Applet访问本地文件的,这对于最终用户而言太危险了,你随便就可以种病毒了。

合理的做法是:
1、访问打包在jar中的文件,比如用:ClassLoader.getResourceAsStream("xxoo");
2、访问互联网站的文件,也即: http://xxoo/xxoo.jpg
古布 2012-06-08
  • 打赏
  • 举报
回复
final Icon icon=new ImageIcon( "1.JPG");
==>
final Icon icon=new ImageIcon( this.getClass().getResource("/1.JPG"));

1.注意图片文件名大小,要一致
2。执行前,清空浏览器缓存,关闭所有浏览器,
3。清空控制面板java Console缓存(如果允许jar的话)
4。启动浏览器
socialchen 2012-06-08
  • 打赏
  • 举报
回复
RotateIcon类的代码:

import java.awt.Component;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;

import javax.swing.Icon;
import javax.swing.plaf.IconUIResource;


@SuppressWarnings("serial")
class RotateIcon extends IconUIResource {

private int degree;

public RotateIcon(Icon icon, int degree) {
super(icon);
this.degree = degree;
}

public void paintIcon(Component c, Graphics g, int x, int y) {
Graphics2D g2d = (Graphics2D) g;
// 获取当前的坐标系状态
AffineTransform atf = g2d.getTransform();
AffineTransform clone = (AffineTransform) atf.clone();
// 以原始Icon的中心点为中心进行坐标系旋转
atf.rotate(Math.PI / 180 * degree, x + getIconWidth() / 2, y + getIconHeight() / 2);
g2d.setTransform(atf);
// 绘制
super.paintIcon(c, g, x, y);
// 重置坐标系
g2d.setTransform(clone);
}
}
socialchen 2012-06-08
  • 打赏
  • 举报
回复
试过了,还是不行。帮忙看看是我代码的原因吗?程序是能运行的

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.BorderLayout;
import javax.swing.*;
public class SwingApplet extends JApplet {
public void init(){
getContentPane().setLayout(new BorderLayout());
//getContentPane().setSize(373,432);

final JLabel label1=new JLabel();
final JLabel label2=new JLabel();
final JLabel label3=new JLabel();
final JLabel label4=new JLabel();
final JLabel label5=new JLabel();
final JLabel label6=new JLabel();
final JLabel label7=new JLabel();
final JLabel label8=new JLabel();
final JLabel label9=new JLabel();
//label.setBackground(Color.black);
//final Icon cn1 = new ImageIcon(new File( "1.JPG ").getAbsolutePath());
final Icon icon=new ImageIcon( "1.JPG");
//System.out.println(cn1);
//System.out.println(r8);
label5.setIcon(icon);
//System.out.print(label8);
// String urlString="F://My eclipse//RotateImage//src//test.jpg";
// JLabel label=new JLabel(new ImageIcon(urlString));
//setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel pane = new JPanel();
pane.setBackground(Color.yellow);
//pane.setSize(373,432);
GridLayout family = new GridLayout(3,3,0,0);
pane.setLayout(family);
pane.add(label1);
pane.add(label2);
pane.add(label3);
pane.add(label8);
pane.add(label4);
pane.add(label5);
pane.add(label6);
pane.add(label7);
pane.add(label8);
pane.add(label9);

Panel pl=new Panel();
Button btn1=new Button("九宫格");
pl.setLayout(new FlowLayout(FlowLayout.LEFT));
pl.add(btn1);

getContentPane().add("North",pl);
getContentPane().add("Center",pane);
setVisible(true);

btn1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
//ImageIcon icon = new ImageIcon(ImageIO.read(new File("src/test.jpg")));
RotateIcon r1 = new RotateIcon(icon, 180);
RotateIcon r2 = new RotateIcon(icon, 90);
RotateIcon r3 = new RotateIcon(icon, 180);
RotateIcon r4 = new RotateIcon(icon, 270);
RotateIcon r6= new RotateIcon(icon, 270);
RotateIcon r7 = new RotateIcon(icon, 180);
RotateIcon r8 = new RotateIcon(icon, 90);
RotateIcon r9 = new RotateIcon(icon, 180);
label1.setIcon(r1);
label2.setIcon(r2);
label3.setIcon(r3);
label4.setIcon(r4);
label6.setIcon(r6);
label7.setIcon(r7);
label8.setIcon(r8);
label9.setIcon(r9);
}
});
}
/*
public void stop(){

}*/
}

50,550

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧