Java - permiso imagenes en applet

 
Vista:
Imágen de perfil de Charly
Val: 206
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

permiso imagenes en applet

Publicado por Charly (118 intervenciones) el 23/01/2017 17:22:05
Hola. He creado un applet de Java con el juego del ahorcado.
A la hora de probarlo en Firefox me dice que una imagen del juego no tiene permiso de lectura.
En la consola de Java me aparece el siguiente error:

java.security.AccessControlException: access denied ("java.io.FilePermission" "imagenes/icono.gif" "read")
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at sun.plugin2.applet.AWTAppletSecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkRead(Unknown Source)
at sun.awt.SunToolkit.checkPermissions(Unknown Source)
at sun.awt.SunToolkit.getImageFromHash(Unknown Source)
at sun.awt.SunToolkit.getImage(Unknown Source)
at Ahorcado.init(Ahorcado.java:34)
at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.init(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

permiso imagenes en applet

Publicado por Tom (1627 intervenciones) el 23/01/2017 19:14:55
Probablemente debas firmar tu applet.
http://monillo007.blogspot.com/2009/03/como-y-por-que-firmar-los-applets-java.html

Por cierto, la tecnología para soportar los applets java va a ir desapareciendo poco a poco. Java 9 (que ya está casi lista) ya no incluirá el plugin necesario para los navegadores.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Charly
Val: 206
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

permiso imagenes en applet

Publicado por Charly (118 intervenciones) el 23/01/2017 19:31:45
Hola Tom, gracias por responder.
Me temo que el problema no son los permisos, sino la manera en la que le paso el parametro de la imagen para que me la ponga en la ventana del applet, porque ejecuto solo la aplicación en Eclipse y no me muestra dicha imagen.
He mirado por internet cómo poner la imagen, pero tampoco me funciona y he probado de mil maneras y tampoco.
Tengo hecho lo mismo pero con swing y me funcionaba, pero no así copiando y pegando el código en el init().
A continuación te pongo el codigo del ejercicio de swing que funcionaba:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
import java.awt.Font;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.border.TitledBorder;
public class Ahorcado extends JFrame implements ActionListener,WindowListener{
	JMenuItem reiniciar,salir;
	String[] palabras=new String[3];
	JLabel[] label=new JLabel[6];
	char[] palabra_secreta=null;
	char[] cad_palabra=null;
	JComboBox combo=null;
	JButton aceptar=null;
	int fallos=0;
	boolean coinciden=false;
	String cad_intentos="";
	public Ahorcado(){
		this.setLayout(null);
		this.setSize(500,320);
		this.setTitle("Juego del Ahorcado");
		Image im=Toolkit.getDefaultToolkit().getImage("imagenes/icono.gif");
		this.setIconImage(im);
		JMenuBar barraMenu=new JMenuBar();
		JMenu menu1=new JMenu("Menú");
		reiniciar=new JMenuItem("Reiniciar");
		reiniciar.addActionListener(this);
		menu1.add(reiniciar);
		salir=new JMenuItem("Salir");
		salir.addActionListener(this);
		menu1.add(salir);
		barraMenu.add(menu1);
		this.setJMenuBar(barraMenu);
		label[0]=new JLabel();
		label[0].setFont(new Font("Comic Sans MS",Font.BOLD,20));
		label[0].setHorizontalAlignment(JLabel.CENTER);
		TitledBorder tb=new TitledBorder("Palabra:");
		label[0].setBorder(tb);
		label[0].setBounds(10,10,210,60);
		this.add(label[0]);
		label[1]=new JLabel();
		label[1].setHorizontalAlignment(JLabel.CENTER);
		tb=new TitledBorder("Intentos:");
		label[1].setBorder(tb);
		label[1].setBounds(10,10+60,210,60);
		this.add(label[1]);
		label[2]=new JLabel();
		label[2].setHorizontalAlignment(JLabel.CENTER);
		tb=new TitledBorder("Letras:");
		label[2].setBorder(tb);
		label[2].setBounds(10,10+60*2,210,60);
		this.add(label[2]);
		label[3]=new JLabel();
		label[3].setHorizontalAlignment(JLabel.LEFT);
		label[3].setText("Seleciona Letra->Aceptar");
		tb=new TitledBorder("Mensajes:");
		label[3].setBorder(tb);
		label[3].setBounds(10,10+60*3,210,60);
		this.add(label[3]);
		label[4]=new JLabel();
		label[4].setBounds(250,17,250,230);
		label[4].setIcon(new ImageIcon("imagenes/1.gif"));
		this.add(label[4]);
		palabras[0]="PATINETE";
		palabras[1]="CHUPETE";
		palabras[2]="ALCORNOQUE";
		String[] list={"A","B","C","D","E","F","G","H","I","J","K","L","M", "N","Ñ","O","P","Q","R","S","T","U","V","W","X","Y","Z"};
		combo=new JComboBox(list);
		combo.setBounds(30,155,40,20);
		this.add(combo);
		aceptar=new JButton("Aceptar");
		aceptar.addActionListener(this);
		aceptar.setBounds(100,155,80,21);
		this.add(aceptar);
		seleccionarPalabra();
	}
	private void seleccionarPalabra(){
		int pos=(int)(Math.random()*palabras.length);
		palabra_secreta=palabras[pos].toCharArray();
		cad_palabra=new char[palabra_secreta.length];
		for(int i=0;i<palabra_secreta.length;i++){
			cad_palabra[i]='-';
		}
		label[0].setText(String.valueOf(cad_palabra));
	}
	private void procesarLetra(){
		String letra_seleccionada=null;
		letra_seleccionada=(String)combo.getSelectedItem();
		label[3].setText(letra_seleccionada);
		if(letraRepetida(letra_seleccionada.charAt(0))==true){
			label[3].setText("Esa letra ya salio...");
		}else{
			cad_intentos=cad_intentos+letra_seleccionada;
			label[1].setText(cad_intentos);
			boolean intento_fallido=true;
			for(int i=0;i<palabra_secreta.length;i++){
				if(letra_seleccionada.charAt(0)==palabra_secreta[i]){
					intento_fallido=false;
					cad_palabra[i]=palabra_secreta[i];
					label[0].setText(String.valueOf(cad_palabra));
				}
			}
			if(intento_fallido==true){
				fallos++;
				label[4].setIcon(new ImageIcon("imagenes/"+(fallos+1)+".gif"));
			}
			if(String.valueOf(palabra_secreta).equals(String.valueOf(cad_palabra))){
				coinciden=true;
				label[03].setText("¡¡¡Has acertado!!!");
				aceptar.setEnabled(false);
			}else if(fallos==6){
				label[03].setText("Demasiados intentos fallidos...");
				aceptar.setEnabled(false);
			}
		}
	}
	private boolean letraRepetida(char l){
		for(int i=0;i<cad_intentos.length();i++){
			if(l==cad_intentos.toCharArray()[i]){
				return true;
			}
		}
		return false;
	}
	private void reiniciarJuego(){
		if(aceptar.isEnabled()==false){
			aceptar.setEnabled(true);
		}
		fallos=0;
		coinciden=false;
		cad_intentos="";
		palabra_secreta=null;
		cad_palabra=null;
		label[0].setText(null);
		label[1].setText(null);
		label[3].setText("Seleciona Letra->Aceptar");
		label[4].setIcon(new ImageIcon("imagenes/1.gif"));
		seleccionarPalabra();
	}
	@Override
	public void actionPerformed(ActionEvent arg0){
		// TODO Auto-generated method stub
		Object control=arg0.getSource();
		if(control instanceof JButton){
			String etiqueta_control=arg0.getActionCommand();
			if(etiqueta_control.equals("Aceptar")){
				if((coinciden==false)&&(fallos<6)){
					procesarLetra();
				}
			}
		}
		if(control instanceof JMenuItem){
			if(control.equals(reiniciar)){
				reiniciarJuego();
			}
			if(control.equals(salir)){
				System.exit(0);
			}
		}
	}
	@Override
	public void windowActivated(WindowEvent arg0){
		// TODO Auto-generated method stub
	}
	@Override
	public void windowClosed(WindowEvent arg0){
		// TODO Auto-generated method stub
	}
	@Override
	public void windowClosing(WindowEvent arg0){
		// TODO Auto-generated method stub
		System.exit(0);
	}
	@Override
	public void windowDeactivated(WindowEvent arg0){
		// TODO Auto-generated method stub
	}
	@Override
	public void windowDeiconified(WindowEvent arg0){
		// TODO Auto-generated method stub
	}
	@Override
	public void windowIconified(WindowEvent arg0){
		// TODO Auto-generated method stub
	}
	@Override
	public void windowOpened(WindowEvent arg0){
		// TODO Auto-generated method stub
	}
}
Ahora pongo el código del applet que tengo, después de muchas variaciones:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.border.TitledBorder;
public class Ahorcado extends JApplet implements ActionListener,KeyListener,WindowListener{
	JMenuItem reiniciar,salir;
	String[] palabras=new String[3];
	JLabel[] label=new JLabel[6];
	char[] palabra_secreta=null;
	char[] cad_palabra=null;
	JComboBox combo=null;
	JButton aceptar=null;
	int fallos=0;
	boolean coinciden=false;
	String cad_intentos="";
	Image im;
	public void init(){
		this.setLayout(null);
		this.setSize(500,320);
		//this.setTitle("Juego del Ahorcado");
		im=Toolkit.getDefaultToolkit().getImage("imagenes/icono.gif");
		//this.setIconImage(im);
		//im=new ImageIcon("imagenes/icono.gif");
		//im=getImage(getDocumentBase(),"imagenes/icono.gif");
		JMenuBar barraMenu=new JMenuBar();
		JMenu menu1=new JMenu("Menú");
		reiniciar=new JMenuItem("Reiniciar");
		reiniciar.addActionListener(this);
		menu1.add(reiniciar);
		salir=new JMenuItem("Salir");
		salir.addActionListener(this);
		menu1.add(salir);
		barraMenu.add(menu1);
		this.setJMenuBar(barraMenu);
		label[0]=new JLabel();
		label[0].setFont(new Font("Comic Sans MS",Font.BOLD,20));
		label[0].setHorizontalAlignment(JLabel.CENTER);
		TitledBorder tb=new TitledBorder("Palabra:");
		label[0].setBorder(tb);
		label[0].setBounds(10,10,210,60);
		this.add(label[0]);
		label[1]=new JLabel();
		label[1].setHorizontalAlignment(JLabel.CENTER);
		tb=new TitledBorder("Intentos:");
		label[1].setBorder(tb);
		label[1].setBounds(10,10+60,210,60);
		this.add(label[1]);
		label[2]=new JLabel();
		label[2].setHorizontalAlignment(JLabel.CENTER);
		tb=new TitledBorder("Letras:");
		label[2].setBorder(tb);
		label[2].setBounds(10,10+60*2,210,60);
		this.add(label[2]);
		label[3]=new JLabel();
		label[3].setHorizontalAlignment(JLabel.LEFT);
		label[3].setText("Seleciona Letra->Aceptar");
		tb=new TitledBorder("Mensajes:");
		label[3].setBorder(tb);
		label[3].setBounds(10,10+60*3,210,60);
		this.add(label[3]);
		label[4]=new JLabel();
		label[4].setBounds(250,17,250,230);
		label[4].setIcon(new ImageIcon("imagenes/1.gif"));
		this.add(label[4]);
		palabras[0]="PATINETE";
		palabras[1]="CHUPETE";
		palabras[2]="ALCORNOQUE";
		String[] list={"A","B","C","D","E","F","G","H","I","J","K","L","M", "N","Ñ","O","P","Q","R","S","T","U","V","W","X","Y","Z"};
		combo=new JComboBox(list);
		combo.setBounds(30,155,40,20);
		this.add(combo);
		aceptar=new JButton("Aceptar");
		aceptar.addActionListener(this);
		aceptar.setBounds(100,155,80,21);
		this.add(aceptar);
		seleccionarPalabra();
	}
	/*public void paint(Graphics g){
        g.drawImage(im,1500,1500,this);
    }*/
	private void seleccionarPalabra(){
		int pos=(int)(Math.random()*palabras.length);
		palabra_secreta=palabras[pos].toCharArray();
		cad_palabra=new char[palabra_secreta.length];
		for(int i=0;i<palabra_secreta.length;i++){
			cad_palabra[i]='-';
		}
		label[0].setText(String.valueOf(cad_palabra));
	}
	private void procesarLetra(){
		String letra_seleccionada=null;
		letra_seleccionada=(String)combo.getSelectedItem();
		label[3].setText(letra_seleccionada);
		if(letraRepetida(letra_seleccionada.charAt(0))==true){
			label[3].setText("Esa letra ya salio...");
		}else{
			cad_intentos=cad_intentos+letra_seleccionada;
			label[1].setText(cad_intentos);
			boolean intento_fallido=true;
			for(int i=0;i<palabra_secreta.length;i++){
				if(letra_seleccionada.charAt(0)==palabra_secreta[i]){
					intento_fallido=false;
					cad_palabra[i]=palabra_secreta[i];
					label[0].setText(String.valueOf(cad_palabra));
				}
			}
			if(intento_fallido==true){
				fallos++;
				label[4].setIcon(new ImageIcon("imagenes/"+(fallos+1)+".gif"));
			}
			if(String.valueOf(palabra_secreta).equals(String.valueOf(cad_palabra))){
				coinciden=true;
				label[03].setText("¡¡¡Has acertado!!!");
				aceptar.setEnabled(false);
			}else if(fallos==6){
				label[03].setText("Demasiados intentos fallidos...");
				aceptar.setEnabled(false);
			}
		}
	}
	private boolean letraRepetida(char l){
		for(int i=0;i<cad_intentos.length();i++){
			if(l==cad_intentos.toCharArray()[i]){
				return true;
			}
		}
		return false;
	}
	private void reiniciarJuego(){
		if(aceptar.isEnabled()==false){
			aceptar.setEnabled(true);
		}
		fallos=0;
		coinciden=false;
		cad_intentos="";
		palabra_secreta=null;
		cad_palabra=null;
		label[0].setText(null);
		label[1].setText(null);
		label[3].setText("Seleciona Letra->Aceptar");
		label[4].setIcon(new ImageIcon("imagenes/1.gif"));
		seleccionarPalabra();
	}
	@Override
	public void actionPerformed(ActionEvent arg0){
		// TODO Auto-generated method stub
		Object control=arg0.getSource();
		if(control instanceof JButton){
			String etiqueta_control=arg0.getActionCommand();
			if(etiqueta_control.equals("Aceptar")){
				if((coinciden==false)&&(fallos<6)){
					procesarLetra();
				}
			}
		}
		if(control instanceof JMenuItem){
			if(control.equals(reiniciar)){
				reiniciarJuego();
			}
			if(control.equals(salir)){
				System.exit(0);
			}
		}
	}
	@Override
	public void windowActivated(WindowEvent arg0){
		// TODO Auto-generated method stub
	}
	@Override
	public void windowClosed(WindowEvent arg0){
		// TODO Auto-generated method stub
	}
	@Override
	public void windowClosing(WindowEvent arg0){
		// TODO Auto-generated method stub
		System.exit(0);
	}
	@Override
	public void windowDeactivated(WindowEvent arg0){
		// TODO Auto-generated method stub
	}
	@Override
	public void windowDeiconified(WindowEvent arg0){
		// TODO Auto-generated method stub
	}
	@Override
	public void windowIconified(WindowEvent arg0){
		// TODO Auto-generated method stub
	}
	@Override
	public void windowOpened(WindowEvent arg0){
		// TODO Auto-generated method stub
	}
	@Override
	public void keyPressed(KeyEvent e){
		// TODO Auto-generated method stub
 
	}
	@Override
	public void keyReleased(KeyEvent e){
		// TODO Auto-generated method stub
	}
	@Override
	public void keyTyped(KeyEvent e){
		// TODO Auto-generated method stub
	}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

permiso imagenes en applet

Publicado por Tom (1627 intervenciones) el 23/01/2017 19:45:21
Ome, hay cantidad de ejemplos por la red.

https://www.tutorialspoint.com/javaexamples/applet_image.htm
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar