Visualizzazione dei risultati da 1 a 7 su 7

Discussione: tag Applet

  1. #1

    tag Applet

    Ciao a tutti,
    Non so se scriverlo qui o nella sezione Java.
    Avrei un problema, vorrei mettere una gioco di tris (funzionante) fatto da me usando una classe che si estende da una JApplet
    in un codice html. uso il tag <applet code="Grafica" width="350" height="200"> ma non funziona, nella Console esce:

    java.lang.NoClassDefFoundError: Grafica (wrong name: eserciziotris/Grafica)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknow n Source)
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Un known Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(U nknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Un known Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Un known Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unk nown Source)
    at sun.plugin2.applet.Plugin2Manager.createApplet(Unk nown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionR unnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
    Eccezione: java.lang.NoClassDefFoundError: Grafica (wrong name: eserciziotris/Grafica)

    sapete il perchè?

  2. #2
    Beh, dovresti postare il codice java...

    Comunque questa è una discussione che decisamente andava nella sezione Java , aspetta che un moderatore la sposti
    La differenza fra la genialità e la stupidità è che la genialità ha i suoi limiti.


  3. #3
    Dopo aver postato mi è venuto il dubbio che forse era meglio mettere il topic in Java
    comunque non so quanto potrebbe servire il codice java, a me sembra più un problema di html o browser, ma non son sicuro.
    la classe Campo è la logica del gioco.
    codice:
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package eserciziotris;
    
    /**
     *
     * @author vanonima
     */
    public class Campo {
    
        int grandezza;
        boolean giocatore1 = true;
        boolean finita = false;
        int volteO = 0;
        int volteX = 0;
        Cella celle[][];
    
        public Campo(int numLunghezza) {
            grandezza = numLunghezza;
            celle = new Cella[grandezza][grandezza];
            creaPianoGioco();
        }
    
        public void creaPianoGioco() {
            for (int i = 0; i < grandezza; i++) {
                for (int j = 0; j < grandezza; j++) {
                    celle[i][j] = new Cella();
                }
            }
        }
    
        public boolean isOccupata(int x, int y) {
            if (celle[x][y].occupata == true) {
                return true;
            } else {
                return false;
            }
        }
    
        public void inserisci(int x, int y) {
            if (finita == false) {
                if (isOccupata(x, y) == false) {
                    celle[x][y].occupata = true;
                    if (giocatore1 == true) {
                        celle[x][y].tipoX = true;
                    } else {
                        celle[x][y].tipoO = true;
                    }
                    cambiaGiocatore();
                }
                controllaPunteggio();
            }
        }
    
        public void cambiaGiocatore() {
            if (giocatore1 == true) {
                giocatore1 = false;
            } else {
                giocatore1 = true;
            }
        }
    
        public void controllaPunteggio() {
            int zero = 0;
    
            for (int i = 0; i < grandezza; i++) {
                for (int j = 0; j < grandezza; j++) {
                    if (celle[zero][zero].tipoO == true && celle[zero + j][zero + j].tipoO == true) {
                        volteO++;
                    }
                    if (celle[zero][zero].tipoX == true && celle[zero + j][zero + j].tipoX == true) {
                        volteX++;
                    }
                }
                if (volteO == grandezza || volteX == grandezza) {
                    break;
                } else {
                    volteO = 0;
                    volteX = 0;
                }
                for (int j = 0; j < grandezza; j++) {
                    if (celle[zero][i].tipoO == true && celle[zero + j][i].tipoO == true) {
                        volteO++;
                    }
                    if (celle[zero][i].tipoX == true && celle[zero + j][i].tipoX == true) {
                        volteX++;
                    }
                }
                if (volteO == grandezza || volteX == grandezza) {
                    break;
                } else {
                    volteO = 0;
                    volteX = 0;
                }
                for (int j = 0; j < grandezza; j++) {
                    if (celle[i][zero].tipoO == true && celle[i][zero + j].tipoO == true) {
                        volteO++;
                    }
                    if (celle[i][zero].tipoX == true && celle[i][zero + j].tipoX == true) {
                        volteX++;
                    }
    
                }
                if (volteO == grandezza || volteX == grandezza) {
                    break;
                } else {
                    volteO = 0;
                    volteX = 0;
                }
                for (int j = 0; j < grandezza; j++) {
                    if (celle[zero][grandezza - 1].tipoO == true && celle[j][(grandezza - 1) - j].tipoO == true) {
                        volteO++;
                    }
                    if (celle[zero][grandezza - 1].tipoX == true && celle[j][(grandezza - 1) - j].tipoX == true) {
                        volteX++;
                    }
                    if ((volteX < grandezza && j == grandezza - 1) && (volteO < grandezza && j == grandezza - 1)) {
                        volteO = 0;
                        volteX = 0;
                    }
                }
            }
            if (volteO == grandezza) {
                finita = true;
            }
            if (volteX == grandezza) {
                finita = true;
            }
    
        }
    }
    la classe Cella è per gli array bidimensionali e rapresenta, ovviamente, una cella.
    codice:
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package eserciziotris;
    
    /**
     *
     * @author vanonima
     */
    public class Cella {
    
        boolean occupata = false;
        boolean tipoX = false;
        boolean tipoO = false;
        public boolean isVuota() {
            if (occupata == false) {
                return true;
            } else {
                return false;
            }
        }
    
        public boolean isTipoX() {
            if (tipoX == false) {
                return false;
            } else {
                return true;
            }
        }
    
        public boolean isTipoO() {
            if (tipoO == false) {
                return false;
            } else {
                return true;
            }
        }
    }
    La classe Grafica è la classe per, anche qui è ovvio, la grafica, estende la JApplet
    codice:
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package eserciziotris;
    
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    import javax.swing.JApplet;
    import javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JToggleButton;
    
    /**
     *
     * @author vanonima
     */
    public class Grafica extends JApplet {
        Campo c = new Campo(3);
        JToggleButton[][] btn = new JToggleButton[c.grandezza][c.grandezza];
        GridLayout grid = new GridLayout(c.grandezza, c.grandezza);
        JPanel pan = new JPanel();
    
        public Grafica() {
            for (int i = 0; i < c.grandezza; i++) {
                for (int j = 0; j < c.grandezza; j++) {
                    btn[i][j] = new JToggleButton();
                    btn[i][j].setBackground(new Color(238, 238, 238));
                    btn[i][j].addMouseListener(new bottoneCliccato());
                    pan.add(btn[i][j]);
                }
            }
            pan.setLayout(grid);
            getContentPane().add(pan);
            inserisci();
            setSize(300, 300);
        }
    
        public void inserisci() {
            c.creaPianoGioco();
        }
    
        private class bottoneCliccato implements MouseListener {
    
            public void mouseClicked(MouseEvent e) {
                for (int i = 0; i < c.grandezza; i++) {
                    for (int j = 0; j < c.grandezza; j++) {
                        if (c.giocatore1 == true) {
                            if (btn[i][j].isSelected() == true) {
                                btn[i][j].setText("X");
                                btn[i][j].setSelected(false);
                                c.celle[i][j].occupata = true;
                                c.celle[i][j].tipoX = true;
                                c.cambiaGiocatore();
                                c.controllaPunteggio();
                                btn[i][j].setEnabled(false);
                                finita();
                            }
                        } else {
                            if (btn[i][j].isSelected() == true) {
                                btn[i][j].setText("O");
                                c.cambiaGiocatore();
                                c.celle[i][j].occupata = true;
                                c.celle[i][j].tipoO = true;
                                btn[i][j].setSelected(false);
                                c.controllaPunteggio();
                                btn[i][j].setEnabled(false);
                                finita();
                            }
                        }
                    }
                }
            }
    
            public void mousePressed(MouseEvent e) {
            }
    
            public void mouseReleased(MouseEvent e) {
            }
    
            public void mouseEntered(MouseEvent e) {
            }
    
            public void mouseExited(MouseEvent e) {
            }
        }
    
        public void finita() {
            if (c.finita == true) {
                for (int i = 0; i < c.grandezza; i++) {
                    for (int j = 0; j < c.grandezza; j++) {
                        btn[i][j].setEnabled(false);
                    }
                }
                if (c.volteO > c.volteX) {
                    JOptionPane.showMessageDialog(null, "Giocatore 2 hai Vinto!");
                } else {
                    JOptionPane.showMessageDialog(null, "Giocatore 1 hai Vinto!");
                }
            }
        }
    }

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    non capendo dove sia il problema chiedo.
    questo errore:
    Eccezione: java.lang.NoClassDefFoundError: Grafica (wrong name: eserciziotris/Grafica)
    ti torna?

    altrimenti posta l'html completo dell'<applet>

  5. #5
    codice:
    <html>
        <head>
            <title></title>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        </head>
        <body>
            <applet code="Grafica" width="350" height="200"> </applet>
            
    
    <OBJECT codetype="application/java" classid="java:Grafica.class" width="350" height="200">
    </OBJECT>
        </body>
    </html>
    i file sono contenuti qui: ...\Documents\NetBeansProjects\esercizioTris\src\e serciziotris

  6. #6
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    ci capisco niente di applet
    provo a postare su Java

  7. #7
    Credo che l'errore sia nel codice html, perchè tu scrivi:

    codice:
    <applet code="Grafica" width="350" height="200">
    "Grafica",se questo è il nome della tua applet, va scritto con l'estensione del codice java compilato, quindi sarà:

    codice:
    <applet code="Grafica.class" width="350" height="200">
    spero di aver spiegato bene...
    Gato

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.