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!