Se você está seguindo as aulas corretamente, deve ter uma interface gráfica simplificada, com apenas a área de desenho e alguns botões para teste... A sua tartaruga provavelmente já anda pela tela, mas não desenha nada...
O problema de desenhar na tela é que tudo tem que ser feito dentro do método paintComponent(como você já sabe), então o que temos que fazer efetivamente é interpretar os comandos em cada uma das linhas da área de texto...
A área de texto em si não tem nada de especial: cada linha contém um único comando (exceto se for o REPEAT). Porém, para interpretá-la, primeiro é necessário obtê-la: existe um método para isso, chamado getText(), dentro da classe JTextArea. Esse método retorna uma longa String, contendo todo o texto, separado por linha.
Agora, é só ler cada linha e interpretar o seu conteúdo. O modo mais fácil de fazer isso é usar uma classe específica chamada StringTokenizer.
Esta classe é capaz de varrer um String e quebrá-lo em tokens, isto é, palavras-chave separadas por algum caractere delimitador (como espaços em branco ou vírgulas, por exemplo). Veja este exemplo:
import java.util.*; // para usar StringTokenizer ... StringTokenizer st = new StringTokenizer("Este é um teste"); while (st.hasMoreTokens()) { System.out.println(st.nextToken()); } |
O método st.hasMoreTokens() retorna true enquanto houver algo na String... Esse trecho de código produzirá a seguinte saída:
Este é um teste |
Como o objeto st foi instanciado com o construtor padrão, isto é, só enviando a String a ser interpretada, são usados os delimitadores padrão: espaço em branco, tab, \n, e \r. Se você quiser usar outros delimitadores, deverá especificá-los na chamada st.nextToken:
import java.util.*; // para usar StringTokenizer ... StringTokenizer st = new StringTokenizer("Veja: este também funciona, certo"); while (st.hasMoreTokens()) { System.out.println(st.nextToken(" :,")); } |
Agora, ele também conseguirá separar as palavras por dois pontos e vírgulas:
Veja este também funciona certo |
Muito mais fácil, não ? Basta agora ler o texto linha a linha e interpretar os comandos da linguagem, que como você deve lembrar, são:
Exercício:
|
Se você chegou até aqui, sua aplicação já deve estar praticamente pronta. Experimente melhorar um pouco a interface ou até mesmo pensar um pouco sobre a sua modelagem. Ela está correta ? Será que não é possível torná-la mais eficiente ?
Uma das coisas que poderiam ser pensadas é a possibilidade de se ter mais de uma tartaruga na tela. O que isso implicaria no código ? E se tivéssemos tipos diferentes de tartarugas, que desenhassem ou se movimentassem de maneiras diversas ? Pense em como a programação orientada a objetos poderia facilitar esse trabalho...
A aplicação já funciona ? Ótimo. A seguir, iremos salvar e recuperar o programa digitado...