java乌龟_java用swing画可以行走的乌龟
代碼如下:
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
* 繪制王八,并設置鍵盤監聽事件
* */
public class TurtleMove {
public static void main(String[] args) {
//1. 創建一個窗體,大小1366*768
JFrame frame = new JFrame();
frame.setSize(1366, 768);
/*//畫一個板子
JPanel panel = new JPanel();
//設置面板的背景顏色
panel.setBackground(Color.BLACK);
//設置窗體添加面板
frame.add(panel);*/
/**創建一個面板,并設置面板的背景顏色
* 并添加到窗體上去*/
XiaoWangBa xwb = new XiaoWangBa();
xwb.setBackground(Color.LIGHT_GRAY);
//窗體添加鍵盤監聽事件,監聽對象是面板
frame.addKeyListener(xwb);
frame.add(xwb);
//3.設置窗體標題為:“畫王八-個人簽名”
frame.setTitle("畫王八-WangYunlong");
//4.設置窗體關閉按鈕功能
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//5.設置窗體大小不可更改
frame.setResizable(false);
//2.設置窗體可見
frame.setVisible(true);
}
}
//面板類
class XiaoWangBa extends JPanel implements KeyListener{
//王八的坐標位置
int x = 400,y = 200;
//王八四條腿(foot)的坐標
int fx1 = 400,fy1 = 200;
int fx2 = 400,fy2 = 200;
int fx3 = 400,fy3 = 200;
int fx4 = 400,fy4 = 200;
//移動變量
int f = 0;
//繪制方法,先輸入paint再alt+/
@Override //JFrame frame
public void paint(Graphics g) {
// TODO Auto-generated method stub
super.paint(g);
//1.第一步先設置畫筆的顏色
//2.第二步再對畫布進行畫圖設置坐標
/**畫腦袋*/
//設置畫筆顏色
//g.setColor(Color.yellow);
// Red Green Blue
g.setColor(new Color(0, 100, 0));
//繪制實心橢圓
g.fillOval(x, y, 70, 100);
/**畫眼睛*/
//設置畫筆顏色
g.setColor(Color.black);
g.fillOval(x+10, y+30, 10, 10);
g.fillOval(x+50, y+30, 10, 10);
/*//眼睛發亮
g.setColor(Color.white);
g.fillOval(x+15, y+30, 4, 4);
g.fillOval(x+55, y+30, 4, 4);*/
/**畫尾巴*/
g.setColor(new Color(0, 100, 0));
g.fillOval(x, y+290, 60, 80);
//設置畫筆顏色和背景顏色相同
g.setColor(Color.LIGHT_GRAY);
g.fillOval(x+20, y+300, 60, 80);
/**畫王八四條腿*/
//左上
g.setColor(new Color(0, 100, 0));
g.fillOval(fx1-85, fy1+80, 70, 70);
//右上
g.setColor(new Color(0, 100, 0));
g.fillOval(fx2+85, fy2+80, 70, 70);
//左下
g.setColor(new Color(0, 100, 0));
g.fillOval(fx3-85, fy3+235, 70, 70);
//右下
g.setColor(new Color(0, 100, 0));
g.fillOval(fx4+85, fy4+235, 70, 70);
/**繪制王八殼*/
g.setColor(new Color(0, 50, 0));
g.fillOval(x-66, y+70, 200, 240);
/**繪制龜紋*/
g.setColor(Color.black);
g.drawOval(x-66, y+70, 200, 240);
//(上)左中右
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);
//中間
g.setColor(new Color(255, 0, 0));
g.fillOval(x+10, y+155, 45, 45);
//(下)左中右
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);
//畫直線(上)
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);
//畫直線(中間)
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);
//畫直線(下)
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) {
// 按鍵盤事件
//測試上鍵
if(e.getKeyCode()==KeyEvent.VK_UP && fy1>0) {
if(fy1
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("測試上鍵");
}
//如果按的是下鍵
if(e.getKeyCode()==KeyEvent.VK_DOWN) {
System.out.println("123");
if(fy1
f = 1;
}else {
f = 0;
}
y+=10;
if(f == 1) {
fy1+=20;
fy4+=20;
}
if(f == 0) {
fy2+=20;
fy3+=20;
}
}
//如果按的是左鍵
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(e.getKeyCode()==KeyEvent.VK_RIGHT) {
if(fx1
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("測試下鍵");
}
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("測試左鍵");
}
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("測試右鍵");
}*/
//重新繪制paint方法(重新調用paint方法)
repaint();
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
}
運行結果為:
總結
以上是生活随笔為你收集整理的java乌龟_java用swing画可以行走的乌龟的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 炒苍耳子的功效与作用、禁忌和食用方法
- 下一篇: 薄荷煲鸡的功效与作用、禁忌和食用方法