O CodEdraw é uma biblioteca de desenho para iniciantes que pode ser usada para criar imagens, animações e até aplicativos interativos. Ele foi projetado para pessoas que estão apenas começando a aprender a programação, permitindo que elas criem aplicativos gráficos.
Leia a introdução ao CodEdraw para um guia para iniciantes para o CodEdraw. Ele também fornece uma visão geral dos recursos disponíveis no CodEdraw.
O Javadoc para Codedraw pode ser encontrado aqui.
Para uma versão C# do CodEdraw, visite o Repositório CodedRawProject.
Vá para lançamentos e faça o download do mais recente codedraw.jar.
Abra o Intellij com o projeto em que você gostaria de adicionar o CodEdraw. Clique no arquivo> estrutura do projeto .... Em Configurações do projeto , selecione Bibliotecas . No canto superior esquerdo, clique no ícone Small Plus e selecione a opção Java . Vá para o Codedraw.jar baixado e selecione -o e pressione OK . Agora você pode importar o codedraw com import codedraw.*; no topo dos seus arquivos java.
Para instalar o CodEdraw com Eclipse , Maven ou Gradle , consulte o Install.md.
Aqui está um exemplo de como você pode criar uma imagem estática com o uso do CodEdraw.
import codedraw .*;
public class Main {
public static void main ( String [] args ) {
// Creates a new CodeDraw window with a size of 400x400 pixel.
CodeDraw cd = new CodeDraw ( 400 , 400 );
// Sets the drawing color to red.
cd . setColor ( Palette . RED );
// Draws the outline of a rectangle.
cd . drawRectangle ( 100 , 100 , 200 , 100 );
// Draws a filled square.
cd . fillSquare ( 180 , 150 , 80 );
// Changes the color to light blue.
cd . setColor ( Palette . LIGHT_BLUE );
cd . fillCircle ( 300 , 200 , 50 );
// Finally, the method "show" must be called
// to display the drawn shapes in the CodeDraw window.
cd . show ();
}
}.show() ❗ 
As animações são criadas desenhando vários quadros e depois parando entre esses quadros. No CodEdraw, isso é conseguido criando um loop no qual cada iteração desenha um quadro e depois aguarda uma certa quantidade de tempo, 1 segundo ou 1000 milissegundos nesse caso, usando o método .show(1000) .
import codedraw .*;
public class Main {
public static void main ( String [] args ) {
CodeDraw cd = new CodeDraw ( 400 , 400 );
for ( double sec = - Math . PI / 2 ; ! cd . isClosed (); sec += Math . PI / 30 ) {
// Clears the entire canvas.
cd . clear ();
// Draws the second hand of the clock.
cd . drawLine ( 200 , 200 , Math . cos ( sec ) * 100 + 200 , Math . sin ( sec ) * 100 + 200 );
// Draws the twelve dots.
for ( double j = 0 ; j < Math . PI * 2 ; j += Math . PI / 6 ) {
cd . fillCircle ( Math . cos ( j ) * 100 + 200 , Math . sin ( j ) * 100 + 200 , 4 );
}
// Displays the drawn objects and waits 1 second.
cd . show ( 1000 );
}
}
} Os programas interativos podem ser criados lendo eventos a partir do EventScanner e switch com base no tipo de evento. Nas versões Java mais antigas, o EventsCanner também pode ser usado da mesma maneira que o java.util.Scanner com has... e next... métodos. Uma explicação mais detalhada pode ser encontrada na seção de eventos de manuseio na Introdução ao Codedraw.
Você também pode usar o gerador de código de eventos CodEdraw para gerar automaticamente seu código de evento para você.
import codedraw .*;
public class Main {
public static void main ( String [] args ) {
CodeDraw cd = new CodeDraw ();
cd . drawText ( 200 , 200 , "Move your mouse over here." );
cd . show ();
cd . setColor ( Palette . RED );
// Creates an endless loop (until you close the window).
while (! cd . isClosed ()) {
// Creates a loop that consumes all the currently available events.
for ( var e : cd . getEventScanner ()) {
switch ( e ) {
// If the event is a mouse move event, a red square will be drawn at its location.
case MouseMoveEvent a ->
cd . fillSquare ( a . getX () - 5 , a . getY () - 5 , 10 );
default -> { }
}
}
// Display the red squares that have been drawn up to this point.
cd . show ( 16 );
}
}
} Todos esses exemplos também podem ser criados usando a interface Animation . Uma instância da interface Animation pode ser passada para o CodEdraw, que posteriormente invoca os métodos que você implementa. O exemplo a seguir permite controlar um círculo com as teclas WASD. O método onKeyDown é acionado sempre que uma tecla é pressionada e modifica a posição do círculo. O método draw é chamado 60 vezes por segundo e desenha o círculo na coordenada XY.
import codedraw .*;
public class MyAnimation implements Animation {
public static void main ( String [] args ) {
CodeDraw . run ( new MyAnimation ());
}
private int x = 50 ;
private int y = 50 ;
@ Override
public void onKeyDown ( KeyDownEvent event ) {
if ( event . getKey () == Key . W ) {
y -= 20 ;
}
else if ( event . getKey () == Key . A ) {
x -= 20 ;
}
else if ( event . getKey () == Key . S ) {
y += 20 ;
}
else if ( event . getKey () == Key . D ) {
x += 20 ;
}
}
@ Override
public void draw ( Image canvas ) {
canvas . clear ();
canvas . fillCircle ( x , y , 10 );
}
}Sinta -se à vontade para fazer perguntas, sugerir recursos ou fazer relatórios de bugs na seção de problemas. ?