The code is as follows:
Import Java.awt.Color;
Import Java.awt.Graphics;
Import java.awt.event.KeyEvent;
Import Java.awt.event.KeyListener;
Import Javax.swing.JFrame;
Import Javax.swing.JPanel;
/**
* @author Brucelong
* Draw the King eight and set the keyboard listener event
* */
public class Turtlemove {
public static void Main (string[] args) {
1. Create a form, size 1366*768
JFrame frame = new JFrame ();
Frame.setsize (1366, 768);
/*//Draw a Board
JPanel panel = new JPanel ();
Set the background color of the panel
Panel.setbackground (Color.Black);
Set up the form add panel
Frame.add (panel); * *
/** Create a panel and set the background color of the panel
* and add to the form * *
Xiaowangba XWB = new Xiaowangba ();
Xwb.setbackground (Color.light_gray);
form to add a keyboard listener event, the listener is a panel
Frame.addkeylistener (XWB);
Frame.add (XWB);
3. Set the form title to: "Draw King eight-personal signature"
Frame.settitle ("Wang eight-wangyunlong");
4. Set the form Close button function
Frame.setdefaultcloseoperation (Jframe.exit_on_close);
5. Setting the form size cannot be changed
Frame.setresizable (FALSE);
2. Set form visible
Frame.setvisible (TRUE);
}
}
Panel class
Class Xiaowangba extends JPanel implements keylistener{
Coordinate position of bastard
int x = 400,y = 200;
Wang 84-legged (foot) coordinates
int fx1 = 400,FY1 = 200;
int FX2 = 400,FY2 = 200;
int fx3 = 400,FY3 = 200;
int FX4 = 400,FY4 = 200;
Moving variables
int f = 0;
Drawing method, first enter paint and then alt+/
@Override//jframe Frame
public void Paint (Graphics g) {
TODO auto-generated Method Stub
Super.paint (g);
1. First step to set the color of the brush
2. Second step drawing the canvas to set the coordinates
/** drawing his head * *
Set Brush color
G.setcolor (Color.yellow);
Red Green Blue
G.setcolor (New Color (0, 100, 0));
Draw a solid ellipse
G.filloval (x, Y, 70, 100);
/** to draw eyes */
Set Brush color
G.setcolor (Color.Black);
G.filloval (x+10, y+30, 10, 10);
G.filloval (x+50, y+30, 10, 10);
/*//Eyes shine
G.setcolor (Color.White);
G.filloval (x+15, Y+30, 4, 4);
G.filloval (x+55, Y+30, 4, 4); * *
/** Draw the tail * *
G.setcolor (New Color (0, 100, 0));
G.filloval (x, y+290, 60, 80);
Sets the same brush color and background color
G.setcolor (Color.light_gray);
G.filloval (x+20, y+300, 60, 80);
/** King 84 Legs */
Upper left
G.setcolor (New Color (0, 100, 0));
G.filloval (fx1-85, fy1+80, 70, 70);
Top Right
G.setcolor (New Color (0, 100, 0));
G.filloval (fx2+85, fy2+80, 70, 70);
Lower left
G.setcolor (New Color (0, 100, 0));
G.filloval (fx3-85, fy3+235, 70, 70);
Lower right
G.setcolor (New Color (0, 100, 0));
G.filloval (fx4+85, fy4+235, 70, 70);
/** draw the King eight shell */
G.setcolor (New Color (0, 50, 0));
G.filloval (x-66, y+70, 200, 240);
/** Drawing Moire */
G.setcolor (Color.Black);
G.drawoval (x-66, y+70, 200, 240);
(upper) left middle right
G.setcolor (Color.yellow);
G.filloval (x-40, y+130, 50, 30);
G.setcolor (Color.Blue);
G.filloval (x+15, y+80, 30, 50);
G.setcolor (Color.yellow);
G.filloval (x+60, y+130, 50, 30);
Middle
G.setcolor (New Color (255, 0, 0));
G.filloval (x+10, y+155, 45, 45);
(bottom) left middle right
G.setcolor (Color.Blue);
G.filloval (x-45, y+195, 50, 30);
G.setcolor (Color.yellow);
G.filloval (x+20, y+220, 30, 50);
G.setcolor (Color.Blue);
G.filloval (x+70, y+195, 50, 30);
Draw a straight line (top)
G.setcolor (Color.Black);
G.drawline (x-10, y+82, x+20, y+158);
G.setcolor (Color.Black);
G.drawline (x+80, y+82, x+43, y+158);
Draw a straight line (middle)
G.setcolor (Color.Black);
G.drawline (x-65, y+180, x+10, y+180);
G.setcolor (Color.Black);
G.drawline (x+133, y+180, x+55, y+180);
Draw Straight line (bottom)
G.setcolor (Color.Black);
G.drawline (x-10, y+298, x+20, y+198);
G.setcolor (Color.Black);
G.drawline (x+80, y+298, x+43, y+198);
}
@Override
public void keytyped (KeyEvent e) {
TODO auto-generated Method Stub
}
@Override
public void keypressed (KeyEvent e) {
Press keyboard events
Test on key
if (E.getkeycode () ==keyevent.vk_up && fy1>0) {
if (fy1<fy2) {
f = 1;
}else {
f = 0;
}
y=y-10;
if (f==0) {
fy1-=20;
fy4-=20;
}if (f==1) {
fy2-=20;
fy3-=20;
}
SYSTEM.OUT.PRINTLN ("Test on Key");
}
If you press the down key
if (E.getkeycode () ==keyevent.vk_down) {
System.out.println ("123");
if (fy1<fy2) {
f = 1;
}else {
f = 0;
}
y+=10;
if (f = = 1) {
fy1+=20;
fy4+=20;
}
if (f = = 0) {
fy2+=20;
fy3+=20;
}
}
If the left button is pressed
if (E.getkeycode () ==keyevent.vk_left &&fx1>99) {
if (FX1>FX2) {
f = 1;
}else {
f = 0;
}
x-=10;
if (f = = 1) {
fx1-=20;
fx4-=20;
}
if (f = = 0) {
fx2-=20;
fx3-=20;
}
}
If the right button is pressed
if (E.getkeycode () ==keyevent.vk_right) {
if (FX1<FX2) {
f = 1;
}else {
f = 0;
}
x+=10;
if (f = = 1) {
fx1+=20;
fx4+=20;
}
if (f = = 0) {
fx2+=20;
fx3+=20;
}
}
/*if (E.getkeycode () ==keyevent.vk_down&& fy1>0) {
y=y+10;
if (fy1<=fy2) {
fy1+=20;
fy4+=20;
}else {
fy2+=20;
fy3+=20;
}
SYSTEM.OUT.PRINTLN ("Test key");
}
if (E.getkeycode () ==keyevent.vk_left && fx1>0) {
x-=10;
if (FX1>=FX2) {
fx1-=20;
fx4-=20;
}else {
fx2-=20;
fx3-=20;
}
SYSTEM.OUT.PRINTLN ("Test left button");
}
if (E.getkeycode () ==keyevent.vk_right && fx1>0) {
x+=10;
if (FX1<=FX2) {
fx1+=20;
fx4+=20;
}else {
fx2-=20;
fx3-=20;
}
System.out.println ("Right-click Test");
}*/
Redraw the Paint method (recall the Paint method)
Repaint ();
}
@Override
public void keyreleased (KeyEvent e) {
TODO auto-generated Method Stub
}
}
The result of the operation is:
Java uses swing to draw a turtle that can walk