国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Java:線程,swing賽跑小游戲(含個(gè)人詳細(xì)解析,理解等)【詩(shī)書畫唱】

2020-07-30 13:15 作者:詩(shī)書畫唱  | 我要投稿



package swing;

import java.awt.Color;

import java.awt.Font;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.Toolkit;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.Random;


import javax.swing.*;

public class runGame extends JFrame{

//在主窗體添加一個(gè)按鈕,添加點(diǎn)擊事件,點(diǎn)擊按鈕的時(shí)候,

//觸發(fā)該事件,改變圖片對(duì)象的x軸的位移就可以達(dá)到跑步的效果。每個(gè)圖片都是

//一個(gè)線程類,點(diǎn)擊開始按鈕的時(shí)候開啟線程,重繪窗體。

public static JButton startAnNiu,endAnNiu,

AnNiu1,AnNiu2,AnNiu3,AnNiu4;

public static void main(String[] args) {

new runGame();

JOptionPane.showMessageDialog

(null,"500px賽跑,點(diǎn)擊下方名字的按鈕,"

+ "\n就可以給這個(gè)人物開掛加速");

}

public runGame(){

this.setLayout(null);

this.setSize(666,666);

this.setLocationRelativeTo(null);

paintClass paintClass=new paintClass();

paintClass.setBounds(0,0,555,555);

this.add(paintClass);

Thread Thread=new Thread(paintClass);

Thread.start();

startAnNiu=new JButton("開始");

endAnNiu=new JButton("暫停");

AnNiu1=new JButton("蠟筆小新");

AnNiu2=new JButton("飛仙");

AnNiu3=new JButton("熊貓人");

AnNiu4=new JButton("帽子人");

AnNiu1.setBounds(230,580, 100,30);

AnNiu2.setBounds(360,580, 70,30);

AnNiu3.setBounds(460,580, 80,30);

AnNiu4.setBounds(550,580, 80,30);


// __

// 綁定事件的部分:

AnNiu1.addActionListener(paintClass);

AnNiu2.addActionListener(paintClass);

AnNiu3.addActionListener(paintClass);

AnNiu4.addActionListener(paintClass);

// __

this.add(AnNiu1);this.add(AnNiu2);

this.add(AnNiu3);this.add(AnNiu4);

startAnNiu.setBounds(30,580,70,30);

endAnNiu.setBounds(130,580,70,30);

startAnNiu.addActionListener(paintClass);

endAnNiu.addActionListener(paintClass);

this.add(startAnNiu);this.add(endAnNiu);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setVisible(true);

}

}

class paintClass extends JPanel implements ActionListener,Runnable{

// tuPianDuiXiang:圖片對(duì)象

tuPianDuiXiang tuPianDuiXiang1,tuPianDuiXiang2,

tuPianDuiXiang3,tuPianDuiXiang4;

public paintClass(){

//在實(shí)例化paintClass的時(shí)候,給每個(gè)圖片進(jìn)行賦值

Image Image1=Toolkit.getDefaultToolkit().getImage("gif1.gif");

Image Image2=Toolkit.getDefaultToolkit().getImage("gif2.gif");

Image Image3=Toolkit.getDefaultToolkit().getImage("gif3.gif");

Image Image4=Toolkit.getDefaultToolkit().getImage("gif4.gif");

tuPianDuiXiang1=new tuPianDuiXiang(0,80,Image1);

tuPianDuiXiang2=new tuPianDuiXiang(0,200,Image2);

tuPianDuiXiang3=new tuPianDuiXiang(0,320,Image3);

tuPianDuiXiang4=new tuPianDuiXiang(0,440,Image4);

}

//構(gòu)造方法里實(shí)例化,paint方法(畫圖方法)里畫:

public void paint(Graphics g){

// System.out.println("給詩(shī)書畫唱三連關(guān)注");

g.clearRect(0,0,this.getWidth(),this.getHeight());

g.setColor(Color.red);

g.setFont(new Font("微軟雅黑",Font.BOLD,30));

g.drawString("起跑線",5,30);

//用drawLine畫線:

g.drawLine(110,0,110,555);

//用drawImage繪制圖片:

g.drawImage(tuPianDuiXiang1.img,tuPianDuiXiang1.x,

tuPianDuiXiang1.y,100,100,this);

g.drawImage(tuPianDuiXiang2.img,tuPianDuiXiang2.x,

tuPianDuiXiang2.y,100,100,this);

g.drawImage(tuPianDuiXiang3.img,tuPianDuiXiang3.x,

tuPianDuiXiang3.y,100,100,this);

g.drawImage(tuPianDuiXiang4.img,tuPianDuiXiang4.x,

tuPianDuiXiang4.y,100,100,this);

}

@Override

public void actionPerformed(ActionEvent e) {


Thread Thread1=new Thread(tuPianDuiXiang1,"蠟筆小新");

Thread Thread2=new Thread(tuPianDuiXiang2,"飛仙");

Thread Thread3=new Thread(tuPianDuiXiang3,"熊貓人");

Thread Thread4=new Thread(tuPianDuiXiang4,"帽子人");

if(e.getActionCommand().equals("開始")){

Thread1.start();Thread2.start();Thread3.start();


Thread4.start();


runGame.startAnNiu.setEnabled(false);

//設(shè)置開始只能點(diǎn)擊一次,點(diǎn)擊開始按鈕后,

// 開始的按鈕就會(huì)變的不能夠編輯,隱藏掉,消失掉,如果

// 有“殘影”,就是用clearRect方法清空原來(lái)的范圍

// 沒(méi)有包括開始的按鈕。

}else if(e.getActionCommand().equals("暫停")){

tuPianDuiXiang1.zanTingFangFa();tuPianDuiXiang2.zanTingFangFa();

tuPianDuiXiang3.zanTingFangFa();

tuPianDuiXiang4.zanTingFangFa();

runGame.endAnNiu.setText("繼續(xù)");

}else if(e.getActionCommand().equals("繼續(xù)")){

tuPianDuiXiang1.kaiShiFangFa();tuPianDuiXiang2.kaiShiFangFa();

tuPianDuiXiang3.kaiShiFangFa();

Thread1.start();Thread2.start();Thread3.start();


runGame.endAnNiu.setText("暫停");

}

if(e.getActionCommand().equals("蠟筆小新")){

System.out.println("蠟筆小新");

Thread1.setPriority(10);

Thread2.setPriority(1);

Thread3.setPriority(1);

Thread4.setPriority(1);

tuPianDuiXiang1.fasterFangFa("蠟筆小新");

}else if(e.getActionCommand().equals("飛仙")){

System.out.println("飛仙");

Thread1.setPriority(1);

Thread2.setPriority(10);

Thread3.setPriority(1);

Thread4.setPriority(1);

tuPianDuiXiang2.fasterFangFa("飛仙");

}else if(e.getActionCommand().equals("熊貓人")){

System.out.println("熊貓人");

Thread1.setPriority(1);

Thread2.setPriority(1);

Thread3.setPriority(10);

Thread4.setPriority(1);

tuPianDuiXiang3.fasterFangFa("熊貓人");

}

else if(e.getActionCommand().equals("帽子人")){

System.out.println("帽子人");

Thread1.setPriority(1);

Thread2.setPriority(1);

Thread3.setPriority(1);

Thread4.setPriority(10);

tuPianDuiXiang4.fasterFangFa("帽子人");

}


}

//下面這個(gè)線程(的run方法的調(diào)用)是刷新面板的意思,

// 在刷新面板的時(shí)候,判斷x軸方向上的位移是否有達(dá)到500米目的地。

@Override

public void run() {

while(true){

try {

Thread.sleep(30);

//如果有一個(gè)人的x軸到達(dá)500的時(shí)候,

// 就調(diào)用含b=false暫停的方法zanTingFangFa(),

// 讓他們所有的人停止掉。


if(tuPianDuiXiang1.x>=500||tuPianDuiXiang2.x>=500

||tuPianDuiXiang3.x>=500||tuPianDuiXiang4.x>=500){

tuPianDuiXiang1.zanTingFangFa();tuPianDuiXiang2.zanTingFangFa();

tuPianDuiXiang3.zanTingFangFa();tuPianDuiXiang4.zanTingFangFa();

if(tuPianDuiXiang1.x>=500){

JOptionPane.showMessageDialog(null,"蠟筆小新先到達(dá)終點(diǎn),勝利!");

}

if(tuPianDuiXiang2.x>=500){

JOptionPane.showMessageDialog(null,"飛仙先到達(dá)終點(diǎn),勝利!");

}

if(tuPianDuiXiang3.x>=500){

JOptionPane.showMessageDialog(null,"熊貓人先到達(dá)終點(diǎn),勝利!");

}

if(tuPianDuiXiang4.x>=500){

JOptionPane.showMessageDialog(null,"帽子人先到達(dá)終點(diǎn),勝利!");

}

break;

}

this.repaint();

} catch (InterruptedException e) {

e.printStackTrace();

}

}


}

}

//使用面向?qū)ο蟮乃枷肴ヂ暶饕粋€(gè)圖片類:

class tuPianDuiXiang implements Runnable{

int x;

int y;

Image img;

boolean b=true;

String name;

public tuPianDuiXiang(int x,int y,Image img){

this.x=x;

this.y=y;

this.img=img;

}

@Override

public void run() {

//在人物的線程里,判斷人是否小于500,

// 當(dāng)b=true時(shí),啟動(dòng)線程,讓圖片進(jìn)行移動(dòng)。

while(this.x<=500&&b){

try {

if(this.name!=null){

if(this.name.equals(Thread.currentThread().getName())){

this.x+=5;

}

}

Thread.sleep(100);

this.x+=new Random().nextInt(15);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

public? void zanTingFangFa(){

this.b=false;

}

//開始的方法:kaiShiFangFa

public? void kaiShiFangFa(){

this.b=true;

}

//加速的方法:fasterFangFa

public void fasterFangFa(String name){

this.name=name;

}

}




Java:線程,swing賽跑小游戲(含個(gè)人詳細(xì)解析,理解等)【詩(shī)書畫唱】的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
林西县| 水富县| 大安市| 横峰县| 宜兰市| 上高县| 普定县| 健康| 齐齐哈尔市| 南木林县| 岳西县| 北流市| 碌曲县| 沛县| 台州市| 惠来县| 平遥县| 福清市| 安龙县| 大理市| 白银市| 吴桥县| 虹口区| 凤阳县| 鄱阳县| 隆昌县| 贺州市| 三亚市| 西林县| 白玉县| 洪江市| 隆安县| 利川市| 瑞金市| 白城市| 永嘉县| 冀州市| 永寿县| 白朗县| 衡山县| 六安市|