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..

Rispondi quotando

