No laboratório de hoje vocês irão fazer extensões ao projeto do Editor Gráfico. O projeto BlueJ irá servir de base (se você estiver no Eclipse crie um projeto Java novo e copie os arquivos .java
para ele). As extensões pedidas abaixo são cumulativas. Lembro que as classes e interfaces que fazem parte do framework não devem ser modificadas.
1. Adicione um novo modo de operação ao editor com um novo botão, “Apagar”. Um clique em uma figura nesse modo apaga a figura. Lembre-se de implementar o suporte a “desfazer” e “refazer” o comando de apagar.
2. Crie duas novas extensões de Figura
. A primeira é um ponto, desenhado com um círculo de raio 1. A segunda é um triângulo, desenhado com um novo método triangulo
que você vai adicionar à classe Canvas
, nos mesmos moldes dos métodos já existentes. Essas duas classes serão usadas na próxima parte do exercício. Não esqueça de adicionar métodos para elas à interface DesenhoFigura
.
3. Implemente o desenho de triângulos no editor através de um novo modo de desenho ligado a um novo botão, “Triângulo”. Um triângulo não é desenhado arrastando e soltando, mas sim usando três cliques, um para cada ponto do triângulo.
O local de cada um dos dois primeiros cliques é marcado com um ponto na tela. Uma maneira de fazer isso é dividindo o modo de desenho do triângulo em três classes: ModoTriangulo1
cria o primeiro ponto no seu método fim
, acrescenta ele à lista de figuras e troca para ModoTriangulo2
. ModoTriangulo2
cria o segundo ponto no seu método fim
, acrescenta ele à lista de figuras e troca para ModoTriangulo3
. ModoTriangulo3
cria o triângulo a partir dos três pontos, acrescenta ele à lista de figuras e remove os dois pontos criados anteriormente.
Novamente, lembre-se de integrar o desenho de triângulos à funcionalidade de desfazer e refazer do editor.
4. Atualmente, se o usuário trocar o modo de operação no meio do desenho do triângulo os pontos que ele marcou até o momento ficarão na tela. Resolva isso adicionando um novo método void abortar()
à interface ModoEditor
. Esse método é chamado no modo atual toda vez que o modo é trocado pelos métodos mover()
, retangulo()
, circulo()
, apagar()
ou triangulo()
(esses dois últimos você deve ter criado como parte das questões 2 e 3). Os únicos modos que precisam fazer alguma coisa no abortar()
são os modos ModoTriangulo2
e ModoTriangulo3
.
A entrega do Laboratório 7 será feita junto com a entrega do Laboratório 8, onde mais extensões ao editor serão pedidas.
Última Atualização: 2016-12-09 11:49