Canvas problems using drawLine method of Graphics

Viewed 24

I'm trying to create a program similar to XLogo but I'm having problems drawing lines on the screen. I can't seem to create a method that draws me a line with the chosen coordinates.

I leave attached the part of the text that should interest you.

avvia.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            System.out.println("avvia");

            String b= codice.getText();
            
            int lunghezzaStringa= b.length();
            
            String indietro= "bk";
            String avanti= "fd";
            String destra= "rt";
            String sinistra= "sr";

            for(int i=0; i<=lunghezzaStringa; i=i+3) {  //avanti di 10  "fd"
                String n = b.substring(i, i=i+2);
                i=i-2;
                System.out.print(i);

                  if(n.contentEquals(avanti)) {
                      System.out.println("Vai avanti di 10 passi");
                      coordinataMemoriaY= coordinataY;
                      coordinataMemoriaX= coordinataX;
                      coordinataY= coordinataY+10;
                      System.out.println("le tue coordinate in questo momento sono:");
                      System.out.println("x: "+coordinataX);
                      System.out.println("y: "+coordinataY);
                    
                     // DRAWLINE(coordinataMemoriaX, coordinataMemoriaY, coordinataMemoriaX, coordinataY);
                  }
                  
                  else if(n.contentEquals(indietro)) {  //indietro di 20  "bk"
                      System.out.println("vai indietro di 20 passi");
                      coordinataMemoriaY= coordinataY;
                      coordinataMemoriaX= coordinataX;
                      coordinataY= coordinataY-20;
                      
                      System.out.println("le tue coordinate in questo momento sono:");
                      System.out.println("x: "+coordinataX);
                      System.out.println("y: "+coordinataY);
                      
                      
                      // DRAWLINE(coordinataMemoriaX, coordinataMemoriaY, coordinataMemoriaX, coordinataY);
                      }  
                  
                  else if(n.contentEquals(destra)) {  //a destra di 10  "rt"
                      System.out.println("vai a destra di 10 passi");
                      coordinataMemoriaY= coordinataY;
                      coordinataMemoriaX= coordinataX;
                      coordinataX= coordinataX+10;
                      
                      System.out.println("le tue coordinate in questo momento sono:");
                      System.out.println("x: "+coordinataX);
                      System.out.println("y: "+coordinataY);
                     // DRAWLINE(coordinataMemoriaX, coordinataMemoriaY, coordinataX, coordinataMemoriaY);
                      } 
                  
                  else if(n.contentEquals(sinistra)) {  //a sinistra di 10  "st"
                      System.out.println("vai a sinistra di 10 passi");
                      coordinataMemoriaY= coordinataY;
                      coordinataMemoriaX= coordinataX;
                      coordinataX= coordinataX-10;
                      
                      System.out.println("le tue coordinate in questo momento sono:");
                      System.out.println("x: "+coordinataX);
                      System.out.println("y: "+coordinataY);
                     //DRAWLINE(coordinataMemoriaX, coordinataMemoriaY, coordinataX, coordinataMemoriaY);
                      }
                  else {
                      System.out.println("errore");
                  }
            }
        }
    });
}

The following is the canvas class

public class OggettiGrafici extends Canvas {

    public OggettiGrafici(){
        setBackground(Color.WHITE);
        setSize(1300, 600);
        setVisible(true);
    }

    public void disegna(int cix, int ciy, int cnx, int cny, Graphics g) {
        //Adding the coordinates calculated in the other class
        g.drawLine(cix, ciy, cnx, cny);
    }
}

I don't quite understand how to proceed and would appreciate help, thank you very much!

0 Answers
Related