Ho scritto una galleria fotografica in Java, l'ho poi adattata sotto forma di applet e funziona (sotto Eclipse e anche da riga di comando)!
Inserendola in una pagina html e lanciando il browser saltan fuori gli errori:

java.security.AccessControlException: access denied (java.io.FilePermission data/data.txt read)
at java.security.AccessControlContext.checkPermission (AccessControlContext.java:323)
at java.security.AccessController.checkPermission(Acc essController.java:546)
at java.lang.SecurityManager.checkPermission(Security Manager.java:532)
at java.lang.SecurityManager.checkRead(SecurityManage r.java:871)
at java.io.FileInputStream.<init>(FileInputStream.jav a:100)
at java.io.FileInputStream.<init>(FileInputStream.jav a:66)
at FotoGallery.azioniFile(FotoGallery.java:91)
at FotoGallery.init(FotoGallery.java:47)
at sun.applet.AppletPanel.run(AppletPanel.java:424)
at java.lang.Thread.run(Thread.java:619)

codice:
public class FotoGallery extends JApplet implements ActionListener{
	JButton b1, b2, b3, b4;
	JComboBox cb;
	JPanel cmd;
	JLabel pic;
	Container c;
	String[] titoli;
	ImageIcon img;
	Vector<String> nomi = new Vector<String>();
	Vector<Integer> numeri = new Vector<Integer>();
	int currentPhoto = 0;
	
	public FotoGallery(){}
	
	public void init(){
		
		azioniFile();
		nomi.add(titoli[0]);
		nomi.add(titoli[1]);
		nomi.add(titoli[2]);
		numeri.add(4);
		numeri.add(3);
		numeri.add(2);
				
		b1 = new JButton("<");
		b2 = new JButton("<<");
		b3 = new JButton(">");
		b4 = new JButton(">>");
		cmd = new JPanel();
		pic = new JLabel();
		c = getContentPane();
		cb = new JComboBox(titoli);
		
		cb.setSelectedIndex(-1);
		cb.addActionListener(this);
		
		b1.addActionListener(this);
		b2.addActionListener(this);
		b3.addActionListener(this);
		b4.addActionListener(this);
		
		cmd.add(b1);
		cmd.add(b2);
		cmd.add(cb);
		cmd.add(b3);
		cmd.add(b4);
		
		c.add(cmd, BorderLayout.NORTH);
		c.add(pic);
		
		setSize(800,600);
	}
	
	public void azioniFile(){
		/* Acquisizione informazioni da "data/data.txt" */
		String riga = "", nome;
		int num;
		FileInputStream in = null;
		
		try{
			in = new FileInputStream("data/data.txt");
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} 
		System.out.println("File aperto!");
		
		InputStreamReader input = new InputStreamReader(in);
		BufferedReader reader = new BufferedReader(input);
				
		//...varie operazioni sul file ...//
			
		titoli = new String[nomi.size()];
		for(int z = 0; z < nomi.size(); z++){
			titoli[z] = nomi.elementAt(z);
		}
	}
	
	public void actionPerformed(ActionEvent e) {
		if(e.getSource() == b3){
			if( currentPhoto == numeri.elementAt(cb.getSelectedIndex()) )
				currentPhoto = 1;
			else	currentPhoto++;
			aggiornaLabel(cb.getSelectedIndex(), currentPhoto);
		}
		//...operazioni analoghe per b1,b2,b4...//
		else if(e.getSource() == cb){
			caricaAlbum(cb.getSelectedIndex());
		}
	}
	
	public void caricaAlbum(int index){
		System.out.println("Entro in caricaAlbum " + index);
		currentPhoto = 1;
		aggiornaLabel(index, currentPhoto);
	}

	public void aggiornaLabel(int index, int foto){
		ImageIcon icon = creaIcona(index + "/" + foto + ".jpg");
		pic.setIcon(icon);
		pic.setHorizontalAlignment(JLabel.CENTER);
		if (icon != null) 	pic.setText(null);
		else				pic.setText("Impossibile trovare la pagina");
	}
	
	public static ImageIcon creaIcona(String path) {
	    URL imgURL = FotoGallery.class.getResource(path);
	    if (imgURL != null) {
	      return new ImageIcon(imgURL);
	    }else{
	      System.err.println("Impossibile trovare il file: " + path);
	      return null;
	    }
	  }

}

Avete qualche idea? Magari è uno dei problemi più ricorrenti per le applet, non so..