Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [JAVA] Reached end of file while parsing

    Ciao a tutti!
    Vi chiedo un piacere!
    IL seguente codice genera l'errore alla riga 91 "reached end of file while parsing"...dovrebbe mancare una } ma non capisco dove!
    Mi potete dare una mano?
    Grazie!


    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;

    public class Dado {
    private int val;
    private FrameConDadi frame;
    public Dado(int val) { this.val = val; }
    public Dado(int val, FrameConDadi frame) {
    this.val = val; this.frame = frame; }
    public void setVal() {
    val = (int)(6*Math.random()+1); }
    public void disegna(Graphics g, int x, int y) {
    g.setColor(Color.white); g.fillRect(x, y, 35, 35);
    g.setColor(Color.black); g.drawRect(x, y, 34, 34);
    if (val > 1) // punto in alto a sinistra
    g.fillOval(x+3, y+3, 9, 9);
    if (val > 3) // punto in alto a destra
    g.fillOval(x+23, y+3, 9, 9);
    if (val == 6) // punto nel mezzo a sinistra
    g.fillOval(x+3, y+13, 9, 9);
    if (val % 2 == 1) // punto al centro
    g.fillOval(x+13, y+13, 9, 9);
    if (val == 6) // punto nel mezzo a destra
    g.fillOval(x+23, y+13, 9, 9);
    }
    public class GiocoDadi {
    public static void main(String args[]) {
    JButton [] arrButt = new JButton [3];
    arrButt[0] = new JButton ("Primo Dado");
    arrButt[1] = new JButton ("Secondo Dado");
    arrButt[2] = new JButton ("Entrambi i Dadi");
    PanelConDadi panel=new PanelConDadi(4,2,arrButt);
    FrameConDadi frame= new FrameConDadi ("Lancio di due dadi", arrButt);
    Container c=frame.getContentPane();
    c.add(panel);
    panel.add(arrButt[0]); panel.add(arrButt[1]);
    panel.add(arrButt[2]);
    arrButt[0].addActionListener(panel);
    frame.addWindowListener(new Terminator ());
    frame.show();
    }
    }
    class PanelConDadi extends JPanel implements ActionListener {
    int larghezza=400, altezza=150;
    Dado[] arrDadi = new Dado[2];
    Color currColor = new Color(0,0,255);
    JButton arrButt[];
    public PanelConDadi(int val1, int val2, JButton[]arrButt) {
    this.arrButt = arrButt;
    arrDadi[0] = new Dado((int)(6*Math.random()+1));
    arrDadi[1] = new Dado((int)(6*Math.random()+1));
    }
    public void actionPerformed (ActionEvent e) {
    // da completare…
    Graphics g = getGraphics();
    if (e.getSource()== arrButt[0]) {
    currColor = Color.red;
    arrDadi[0].setVal();
    arrDadi[0].disegna(g, 110, 60); }
    setBackground(currColor); }
    public void paintComponent(Graphics g) {
    super.paintComponent(g);
    setBackground(currColor); g.setColor(Color.black);
    g.drawRect(0,0,larghezza-1,altezza-1);
    arrDadi[0].disegna(g, 110, 60);
    arrDadi[1].disegna(g, 230, 60); } }
    class FrameConDadi extends JFrame implements ActionListener {
    JButton arrButt [];
    public FrameConDadi (String titolo, JButton []arrButt) {
    super(titolo);
    setBounds(100,100,400,150);
    this.arrButt = arrButt;
    }
    public void actionPerformed (ActionEvent e) {
    }
    }
    class Terminator implements WindowListener {
    public void windowClosed(WindowEvent e) {}
    public void windowClosing(WindowEvent e) {
    System.exit(0); }
    public void windowOpened(WindowEvent e) {}
    public void windowIconified(WindowEvent e) {}
    public void windowDeiconified(WindowEvent e) {
    System.out.println("\nSono appena stato ingrandito!\n");
    FrameConDadi frame = (FrameConDadi) e.getSource();
    frame.setTitle("SONO QUI DI NUOVO!");
    frame.show(); }
    public void windowActivated(WindowEvent e) {}
    public void windowDeactivated(WindowEvent e) {}
    }

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA] Reached end of file while parsing

    Originariamente inviato da sunandsea
    IL seguente codice genera l'errore alla riga 91 "reached end of file while parsing"...dovrebbe mancare una } ma non capisco dove!
    Nemmeno io .... il codice così come è scritto, senza una corretta indentazione e con le } messe un po' a casaccio dove capitano, è praticamente illeggibile e ingestibile!!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Scusatemi...sono alle prime armi sia con java che con il forum...così dovrebbe essere ben indentato!(usando
    codice:
    e
    , giusto?]

    codice:
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    
    public class Dado {
     private int val;
     private FrameConDadi frame;
    
     public Dado(int val) { this.val = val; }
    
     public Dado(int val, FrameConDadi frame) {
       this.val = val; this.frame = frame; }
    
     public void setVal() {
       val = (int)(6*Math.random()+1); }
    
     public void disegna(Graphics g, int x, int y) {
       g.setColor(Color.white); g.fillRect(x, y, 35, 35);
       g.setColor(Color.black); g.drawRect(x, y, 34, 34);
       if (val > 1) // punto in alto a sinistra
       g.fillOval(x+3, y+3, 9, 9);
       if (val > 3) // punto in alto a destra
       g.fillOval(x+23, y+3, 9, 9);
       if (val == 6) // punto nel mezzo a sinistra
       g.fillOval(x+3, y+13, 9, 9);
       if (val % 2 == 1) // punto al centro
       g.fillOval(x+13, y+13, 9, 9);
       if (val == 6) // punto nel mezzo a destra
       g.fillOval(x+23, y+13, 9, 9);
       }
    
     public class GiocoDadi {
    
     public static void main(String args[]) {
    
      JButton [] arrButt = new JButton [3];
      arrButt[0] = new JButton ("Primo Dado");
      arrButt[1] = new JButton ("Secondo Dado");
      arrButt[2] = new JButton ("Entrambi i Dadi");
    
      PanelConDadi panel=new PanelConDadi(4,2,arrButt);
      FrameConDadi frame= new FrameConDadi ("Lancio di due dadi", arrButt);
      Container c=frame.getContentPane();
      c.add(panel);
      panel.add(arrButt[0]); panel.add(arrButt[1]);
      panel.add(arrButt[2]);
      arrButt[0].addActionListener(panel);
      frame.addWindowListener(new Terminator ());
      frame.show();
      }
    }
    
     class PanelConDadi extends JPanel implements ActionListener {
    
      int larghezza=400, altezza=150;
      Dado[] arrDadi = new Dado[2];
      Color currColor = new Color(0,0,255);
      JButton arrButt[];
    
      public PanelConDadi(int val1, int val2, JButton[]arrButt) {
      this.arrButt = arrButt;
      arrDadi[0] = new Dado((int)(6*Math.random()+1));
      arrDadi[1] = new Dado((int)(6*Math.random()+1));
      }
    
     public void actionPerformed (ActionEvent e) {
       Graphics g = getGraphics();
      if (e.getSource()== arrButt[0]) {
        currColor = Color.red;
        arrDadi[0].setVal();
        arrDadi[0].disegna(g, 110, 60); }
      setBackground(currColor); }
    
     public void paintComponent(Graphics g) {
      super.paintComponent(g);
      setBackground(currColor); g.setColor(Color.black);
      g.drawRect(0,0,larghezza-1,altezza-1);
      arrDadi[0].disegna(g, 110, 60);
      arrDadi[1].disegna(g, 230, 60); } }
    
     class FrameConDadi extends JFrame implements ActionListener {
    
       JButton arrButt [];
    
       public FrameConDadi (String titolo, JButton []arrButt) {
       super(titolo);
       setBounds(100,100,400,150);
       this.arrButt = arrButt;
       }
    
      public void actionPerformed (ActionEvent e) {
       }
     }
    
     class Terminator implements WindowListener {
    
       public void windowClosed(WindowEvent e) {}
       public void windowClosing(WindowEvent e) {
         System.exit(0); }
     public void windowOpened(WindowEvent e) {}
     public void windowIconified(WindowEvent e) {}
     public void windowDeiconified(WindowEvent e) {
       System.out.println("\nSono appena stato ingrandito!\n");
       FrameConDadi frame = (FrameConDadi) e.getSource();
       frame.setTitle("SONO QUI DI NUOVO!");
       frame.show(); }
     public void windowActivated(WindowEvent e) {}
     public void windowDeactivated(WindowEvent e) {}
    }

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da sunandsea
    codice:
     public void paintComponent(Graphics g) {
      super.paintComponent(g);
      setBackground(currColor); g.setColor(Color.black);
      g.drawRect(0,0,larghezza-1,altezza-1);
      arrDadi[0].disegna(g, 110, 60);
      arrDadi[1].disegna(g, 230, 60); } }
    In genere, per convenzione, si fa la indentazione con 4 spazi, non 1, 2 o come pare.
    Poi se metti graffe di chiusura così } } non si capirà mai cosa chiudono!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    reached end of file alla riga 117:

    codice:
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    
    public class Dado {
    
       private int val;
       private FrameConDadi frame;
    
       public Dado(int val){ 
         this.val = val;}
    
       public Dado(int val, FrameConDadi frame){
         this.val = val; this.frame = frame;}
    
       public void setVal() {
         val = (int)(6*Math.random()+1); }
    
       public void disegna(Graphics g, int x, int y) {
         g.setColor(Color.white); g.fillRect(x, y, 35, 35);
         g.setColor(Color.black); g.drawRect(x, y, 34, 34);
         if (val > 1) 
           g.fillOval(x+3, y+3, 9, 9);
         if (val > 3) 
           g.fillOval(x+23, y+3, 9, 9);
         if (val == 6) 
           g.fillOval(x+3, y+13, 9, 9);
         if (val % 2 == 1) 
           g.fillOval(x+13, y+13, 9, 9);
         if (val == 6) 
           g.fillOval(x+23, y+13, 9, 9);
         }
    
       public class GiocoDadi {
    
       public static void main(String args[]) {
    
         JButton [] arrButt = new JButton [3];
         arrButt[0] = new JButton ("Primo Dado");
         arrButt[1] = new JButton ("Secondo Dado");
         arrButt[2] = new JButton ("Entrambi i Dadi");
    
         PanelConDadi panel=new PanelConDadi(4,2,arrButt);
    
         FrameConDadi frame= new FrameConDadi ("Lancio di due dadi", arrButt);
         Container c=frame.getContentPane();
         c.add(panel);
         panel.add(arrButt[0]); 
         panel.add(arrButt[1]);
         panel.add(arrButt[2]);
         arrButt[0].addActionListener(panel);
         frame.addWindowListener(new Terminator ());
         frame.show();
         }
       }
    
       class PanelConDadi extends JPanel implements ActionListener {
    
         int larghezza=400, altezza=150;
         Dado[] arrDadi = new Dado[2];
         Color currColor = new Color(0,0,255);
         JButton arrButt[];
    
       public PanelConDadi(int val1, int val2, JButton[]arrButt) {
         this.arrButt = arrButt;
         arrDadi[0] = new Dado((int)(6*Math.random()+1));
         arrDadi[1] = new Dado((int)(6*Math.random()+1));
       }
    
       public void actionPerformed (ActionEvent e) {
         Graphics g = getGraphics();
         if (e.getSource()== arrButt[0]) {
          currColor = Color.red;
          arrDadi[0].setVal();
          arrDadi[0].disegna(g, 110, 60); 
         }
         setBackground(currColor); 
       }
    
      public void paintComponent(Graphics g) {
        super.paintComponent(g);
        setBackground(currColor); g.setColor(Color.black);
        g.drawRect(0,0,larghezza-1,altezza-1);
        arrDadi[0].disegna(g, 110, 60);
        arrDadi[1].disegna(g, 230, 60); 
      }
        
      class FrameConDadi extends JFrame implements ActionListener{
    
        JButton arrButt[];
    
       public FrameConDadi (String titolo, JButton []arrButt) {
         super(titolo);
         setBounds(100,100,400,150);
         this.arrButt = arrButt;
       }
       
      public void actionPerformed (ActionEvent e) {
        }
      
     class Terminator implements WindowListener {
    
       public void windowClosed(WindowEvent e) {}
       public void windowClosing(WindowEvent e){
          System.exit(0);}
       public void windowOpened(WindowEvent e) {}
       public void windowIconified(WindowEvent e) {}
       public void windowDeiconified(WindowEvent e) {    
          System.out.println("\nSono appena stato ingrandito!\n");
          FrameConDadi frame = (FrameConDadi) e.getSource();
          frame.setTitle("SONO QUI DI NUOVO!");
          frame.show(); 
          }
       public void windowActivated(WindowEvent e) {}
       public void windowDeactivated(WindowEvent e) {}
       }
      }

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Dove termina la classe Dado?? Manca la sua graffa di chiusura.

    Un consiglio che già ti ha dato andbin: cerca di allineare le graffe di chiusura con il blocco di codice di apertura, in questo modo:
    codice:
    blocco di apertura {
       codice
       codice
    }
    Così risilta più facile anche a te accorgerti degli errori.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Sì...grazie del consiglio!
    Il fatto è che ho iniziato prima a lavorare in eclipse (dove le indentazioni sono automatiche) ma capivo ancora meno gli errori che mi segnalava...quindi son passata al blocco note+prompt dei comani, dove non avevo mai lavorato e non ho pensato di fare tutti i rientri.
    Mi servirà x la prox volta!

    Cmq credo anch'io che il problema sia della graffa mancante di chiusura della classe Dado (termina dopo la serie di if, prima dell'inizio della classe GiocoDadi), ma se anche la inserisco lì...mi dà sempre lo stesso errore:"reaching end of file while parsing" alla riga 118, quindi non crea il file Dado.class!

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.