Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    [JAVA] Non riesco a implementare l'applet

    Salve a tutti ho un problemone urgente con Java.

    Premetto che non capisco niente di java, ma devo
    per forza di cose mette un'applet che mi hanno dato
    all'interno di un file html.

    Ho visto che i file dell'applet sono moltissimi (tanti
    file .class, .java, .jpg....), e io, usando il tag
    applet: <APPLET CODE nomefile.class> </APPLET>
    nel file html, non riesco a visualizzarla.

    Come mai ? Dovrei indicare nel tag l'elenco di tutti
    i file .class ?

    Vi prego sono disperato !!!!


    PS: se da prompt dei comandi (come mi hanno detto di fare)
    eseguo: javac nomefile.java viene generato
    nomefile.class

    per verificare che funziona io scrivo:

    java nomefile

    ed in effetti compare una finestra con disegni e
    scritte tutto regolare insomma... quello che non mi
    riesce e' l'implementazione nel file html !!!

    Vi prego aiuto !!!

  2. #2
    è strano che ti vada con il comando java dato che per quello serve un metodo main mentre per far partire una applet occorre il metodo init al posto del main.... :master:
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  3. #3
    Prova con il seguente comando:
    c:...>appletviewer file.html
    Nulla, ma e' sempre qualcosa.

  4. #4
    Non sono ancora riuscito a venirne a capo...

    vi copio il listato del file .class (FinestraZodia.class)
    che vorrei implementare come applet in un file html


    ----------------------------------------
    import javax.swing.JPanel ;
    import javax.swing.JFrame ;
    import java.awt.Graphics ;

    import java.awt.Image ;

    import zodiaco.* ;


    /** Questa riga inizia la definizione di una niova classe
    */
    public class FinestraZodia extends JPanel {


    Zodia zodiaco = new Zodia() ;

    /** Inizializza il pannello che poi sarà inserito nella finestra.
    */
    public FinestraZodia() {


    Segno Aries = new Ariete("Aries", "img/ariete.jpg") ;
    Segno Taurus = new Toro("Taurus", "img/toro.jpg") ;
    Segno Gemini = new Gemelli("Gemini", "img/gemelli.jpg") ;
    Segno Cancer = new Cancro("Cancer", "img/cancro.jpg") ;
    Segno Leo = new Leone("Leo", "img/leone.jpg") ;
    Segno Virgo = new Vergine("Virgo", "img/vergine.jpg") ;
    Segno Libra = new Bilancia("Libra", "img/bilancia.jpg") ;
    Segno Scorpius = new Scorpione("Scorpius", "img/scorpione.jpg") ;
    Segno Sagittarius = new Sagittario("Sagittarius", "img/sagittario.jpg") ;
    Segno Capricornus = new Capricorno("Capricornus", "img/capricorno.jpg") ;
    Segno Acquarius = new Acquario("Acquarius", "img/acquario.jpg") ;
    Segno Pesces = new Pesci("Pesces", "img/pesci.jpg") ;


    zodiaco.aggiungiSegno(Aries) ;
    zodiaco.aggiungiSegno(Taurus) ;
    zodiaco.aggiungiSegno(Gemini) ;
    zodiaco.aggiungiSegno(Cancer) ;
    zodiaco.aggiungiSegno(Leo) ;
    zodiaco.aggiungiSegno(Virgo) ;
    zodiaco.aggiungiSegno(Libra) ;
    zodiaco.aggiungiSegno(Scorpius) ;
    zodiaco.aggiungiSegno(Sagittarius) ;
    zodiaco.aggiungiSegno(Capricornus) ;
    zodiaco.aggiungiSegno(Acquarius) ;
    zodiaco.aggiungiSegno(Pesces) ;


    }


    /** Metodo ereditato dalla classe JPanel serve per aggiornare il pannello.
    */
    public void paint(Graphics g) {

    // stampa le informazioni di testo dello zodiaco.
    Segno[] segni = zodiaco.elencoAnimali() ;
    System.out.println("Ci sono "+segni.length+" segni:") ;
    for(int i=0 ; i<segni.length ; i++) {
    Segno a = segni[i] ;
    System.out.println(a.dimmiNome()+", "+a.categoria()+", dice "+a.faiPredizione()) ;
    }


    // dati per visualizzazione delle img nella finestra

    // il numero di ammagini per ogni riga
    int numero_colonne = 3 ;
    // larghezza forzata per le immagini
    int larghezza_immagini = 100 ;
    // altezza fortzata per le immagini
    int altezza_immagini = 100 ;
    // spazio verticale tra due immagini dove stampare il testo
    int spazio_testo = 40 ;

    // colonna corrente
    int colonna = 100 ;
    // posizione x iniziale
    int start_x = 10 ;
    // posizione attuale per stampare un'immagine
    int x=start_x, y=spazio_testo ;

    // per ogni segno faccio stampare l'img e la predizione
    for(int i=0 ; i<segni.length ; i++) {
    Segno a = segni[i] ;

    g.drawString(a.dimmiNome()+": "+a.faiPredizione(), x, y) ;

    // se non c'e' la foto, stampa un testo di default.
    Image im = a.immagine() ;
    if(im!=null) {
    g.drawImage(im, x, y, larghezza_immagini, altezza_immagini, this) ;
    } else {
    g.drawString("Foto N/A", x, y+spazio_testo) ;
    }


    // avanza di una colonna
    colonna++ ;
    // se ho ragguinto il massimo delle colonne, riparto a disegbare da sinistra
    if(colonna >= numero_colonne) {
    x = start_x ;
    y += altezza_immagini + spazio_testo ;
    colonna = 0 ;
    } else {
    // altrimenti vado verso destra
    x += 150 + larghezza_immagini ;
    }


    }

    }


    /** Metodo main che istanzia un pannello e lo inserisce in una finestra.
    */
    public static void main(String[] args) {
    JFrame frame = new JFrame("Graphic output");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS E);
    frame.setSize(800, 600);
    frame.getContentPane().add(new FinestraZodia());
    frame.setVisible(true);
    }

    }
    --------------------------------------

    Secondo voi manca la riga che "dice" a java che questa
    vuole essere una applet ?

    Vi prego ditemi come si fa......

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    non è un applet.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  6. #6
    Aiuto...

    mi sai dire come faccio a farlo diventare un'applet ?

    Ti prego sono con l'acqua alla gola....

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Bhè, sperando che il resto dell'applicazione non faccia robe strane (non compatibili con applet e restrizioni varie), potresti incominciare con:



    codice:
    import javax.swing.JPanel; 
    import javax.swing.JFrame; 
    import java.awt.Graphics; 
    import javax.swing.*;
    
    import java.awt.Image; 
    
    import zodiaco.* ; 
    
    
    /** Questa riga inizia la definizione di una niova classe 
    */ 
    public class FinestraZodia extends JApplet { 
    
    
    Zodia zodiaco = new Zodia() ; 
    
    /** Inizializza il pannello che poi sarà inserito nella finestra. 
    */ 
    public void init() { 
    
    
    Segno Aries = new Ariete("Aries", "img/ariete.jpg") ; 
    Segno Taurus = new Toro("Taurus", "img/toro.jpg") ; 
    Segno Gemini = new Gemelli("Gemini", "img/gemelli.jpg") ; 
    Segno Cancer = new Cancro("Cancer", "img/cancro.jpg") ; 
    Segno Leo = new Leone("Leo", "img/leone.jpg") ; 
    Segno Virgo = new Vergine("Virgo", "img/vergine.jpg") ; 
    Segno Libra = new Bilancia("Libra", "img/bilancia.jpg") ; 
    Segno Scorpius = new Scorpione("Scorpius", "img/scorpione.jpg") ; 
    Segno Sagittarius = new Sagittario("Sagittarius", "img/sagittario.jpg") ; 
    Segno Capricornus = new Capricorno("Capricornus", "img/capricorno.jpg") ; 
    Segno Acquarius = new Acquario("Acquarius", "img/acquario.jpg") ; 
    Segno Pesces = new Pesci("Pesces", "img/pesci.jpg") ; 
    
    
    zodiaco.aggiungiSegno(Aries) ; 
    zodiaco.aggiungiSegno(Taurus) ; 
    zodiaco.aggiungiSegno(Gemini) ; 
    zodiaco.aggiungiSegno(Cancer) ; 
    zodiaco.aggiungiSegno(Leo) ; 
    zodiaco.aggiungiSegno(Virgo) ; 
    zodiaco.aggiungiSegno(Libra) ; 
    zodiaco.aggiungiSegno(Scorpius) ; 
    zodiaco.aggiungiSegno(Sagittarius) ; 
    zodiaco.aggiungiSegno(Capricornus) ; 
    zodiaco.aggiungiSegno(Acquarius) ; 
    zodiaco.aggiungiSegno(Pesces) ; 
    
    
    } 
    
    
    /** Metodo ereditato dalla classe JPanel serve per aggiornare il pannello. 
    */ 
    public void paint(Graphics g) { 
    
    // stampa le informazioni di testo dello zodiaco. 
    Segno[] segni = zodiaco.elencoAnimali() ; 
    System.out.println("Ci sono "+segni.length+" segni:") ; 
    for(int i=0 ; i<segni.length ; i++) { 
    Segno a = segni[i] ; 
    System.out.println(a.dimmiNome()+", "+a.categoria()+", dice "+a.faiPredizione()) ; 
    } 
    
    
    // dati per visualizzazione delle img nella finestra 
    
    // il numero di ammagini per ogni riga 
    int numero_colonne = 3 ; 
    // larghezza forzata per le immagini 
    int larghezza_immagini = 100 ; 
    // altezza fortzata per le immagini 
    int altezza_immagini = 100 ; 
    // spazio verticale tra due immagini dove stampare il testo 
    int spazio_testo = 40 ; 
    
    // colonna corrente 
    int colonna = 100 ; 
    // posizione x iniziale 
    int start_x = 10 ; 
    // posizione attuale per stampare un'immagine 
    int x=start_x, y=spazio_testo ; 
    
    // per ogni segno faccio stampare l'img e la predizione 
    for(int i=0 ; i<segni.length ; i++) { 
    Segno a = segni[i] ; 
    
    g.drawString(a.dimmiNome()+": "+a.faiPredizione(), x, y) ; 
    
    // se non c'e' la foto, stampa un testo di default. 
    Image im = a.immagine() ; 
    if(im!=null) { 
    g.drawImage(im, x, y, larghezza_immagini, altezza_immagini, this) ; 
    } else { 
    g.drawString("Foto N/A", x, y+spazio_testo) ; 
    } 
    
    
    // avanza di una colonna 
    colonna++ ; 
    // se ho ragguinto il massimo delle colonne, riparto a disegbare da sinistra 
    if(colonna >= numero_colonne) { 
    x = start_x ; 
    y += altezza_immagini + spazio_testo ; 
    colonna = 0 ; 
    } else { 
    // altrimenti vado verso destra 
    x += 150 + larghezza_immagini ; 
    } 
    
    
    } 
    
    } 
    
    
    /** Metodo main che istanzia un pannello e lo inserisce in una finestra. 
    */ 
    }
    Saluti

    ---------
    EDIT:
    In verità a ben guardare, ci sono degli altri "problemi" nel tuo codice... ossia, c'è della stampa a terminale (System.out.println(....) nel metodo paint) che stride abbastanza con il concetto di applet (che è prettamente grafica)... la stampa in consolle di messaggi dalle applet dovrebbe essere effettuata solo per scopi di debug in fase di progettazione. Dovresti dire a chi ti ha passato il codice di rifare un po' tutto.
    Saluti.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  8. #8
    Grazie, grazie veramente di cuore...

    Purtroppo non sono ancora riuscito a venirne a capo,
    e la scadenza si avvicina... (ho tempo ancora oggi
    pomeriggio e stasera...)

    Ho provato col tuo listato ma il browser mi da'
    nella barra di stato, il seguente errore:

    java.security.accesscontrolexception: accessdenied
    (java.io.filepermission img/ariete.jpg read)

    C'e' un modo per risolvere ?

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    si, farti rifare il programma. Sorry, probabilmente cerca di accedere a file nel disco o roba del genere: quella era nata come applicazione, non come applet... le applet per motivi di sicurezza hanno delle restrizioni (altrimenti sai che anarchia, leggere, scrivere e cancellare file sul disco di un utente...).

    Saluti.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  10. #10
    Eh in effetti non hai tutti i torti....

    Grazie infinitamente in ogni caso !

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.