最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

Java swing(自己方法簡化版):賽跑游戲,點擊圖片后圖片會切換與跑動【詩書畫唱】

2020-06-02 22:16 作者:詩書畫唱  | 我要投稿


paint方法會無限循環(huán)。visible可見的。



package myGameqieHuan;


import java.awt.BorderLayout;

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.BorderFactory;

import javax.swing.ButtonGroup;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JRadioButton;


import runningMan4.GamePanel;

import runningMan4.RunningMan;


public class GameJFrame extends JFrame {


class GamePanel extends JPanel {



public void paint(Graphics g) {


super.paint(g);

//boolean isRun = false;

for (int i = 0; i < imgBack.length; i++) {



g.drawImage(imgBack[i], 0, (getHeight() * i) / 4, getWidth(),


getHeight() / 4, this);

//點擊按鈕后,一開始isRun默認為true,執(zhí)行有 xs[i]的部分

if (isRunNum==1) {


g.drawImage(imgRun[i], xs[i], (getHeight() * i) / 4 + 30,


getWidth()/8, getHeight() / 5, this);



}?

else if(isRunNum==2){


g.drawImage(imgReady[i], 30, (getHeight() * i) / 4 + 30,


getWidth()/8, getHeight() / 5, this);

}



}}



}


public static void main(String[] args) {




new GameJFrame();




}

RunningMan[] mans = new RunningMan[4] ;

//四個小人的名字

String[] names={"一號選手","二號選手","三號選手", "四號選手" } ;


//單選按鈕.

JRadioButton[] jr_mans=new JRadioButton[4];

ButtonGroup bg=new ButtonGroup() ;


Image[] imgBack = new Image[4];

Image[] imgReady = new Image[4];

Image[] imgRun = new Image[4];

//MyPanel jp=new MyPanel();

GamePanel game_panel = new GamePanel();

JPanel jp_control = new JPanel();

JButton bt_start = new JButton("開始");

JButton bt_restart=new JButton("重新開始");

//boolean isRun =false;

int isRunNum =2;

int[] xs = new int[4];


public GameJFrame() {


for (int i = 0; i < imgBack.length; i++) {




imgBack[i] = Toolkit.getDefaultToolkit().createImage(




"imgBack\\" + (i+1) + ".jpg");


//false為isRun


//isRun = false;

//if (false) {

//

//

//imgRun[i] = Toolkit.getDefaultToolkit().createImage(

//"imgRun\\" + (i + 1) + "3.jpg");

//

//

//

//

//} else?

//isRun = false;


if (isRunNum==1){




imgRun[i] = Toolkit.getDefaultToolkit().createImage(

"imgRun\\gif" + (i+1 ) + ".gif");

//

//

//"imgRun\\" + (i + 1) + "3.jpg");

}

// true表示執(zhí)行

// false表示不執(zhí)行

else if(isRunNum==2){

imgReady[i] = Toolkit.getDefaultToolkit().createImage(

"imgReady\\gif" + (i+1 ) + "2.gif");


}jr_mans[i]=new JRadioButton (names[i]);

bg.add(jr_mans[i]) ;

//放到面板上

//放到面板上T

jp_control.add(jr_mans[i]) ;



}

bt_start.addActionListener(new ActionListener() {




@Override




public void actionPerformed(ActionEvent e) {

if(! (jr_mans[0].isSelected() || jr_mans [1] . isSelected()

|| jr_mans [2] . isSelected()|| jr_mans [3] . isSelected())){

JOptionPane . showMessageDialog (GameJFrame. this, "親,選一個啊,要不你來玩啥了.. .",

"選人",JOptionPane.WARNING_MESSAGE) ;

//沒有返回值的方法可以直接寫一個return不返回任何數(shù)據(jù)只是單純的結(jié)束方法

return;

}


// if部分要寫在for等部分前面,不然會提前切換圖片,執(zhí)行順序不同,效果就不同。

isRunNum = 1;

//

// 下面的for的代碼之所以要再執(zhí)行,是因為不執(zhí)行的話,

// 在下面的for中仍然默認isRunNum = 2;

// 跑動的圖片的調(diào)用不會出來,就不會有圖片跑動了,

// 跑動的圖片的調(diào)用與圖片跑動的調(diào)用的條件是isRunNum 都為 1,

// 我直接鉆研較久才鉆研出來的。

for (int i = 0; i < imgBack.length; i++) {



imgBack[i] = Toolkit.getDefaultToolkit().createImage(




"imgBack\\" + (i+1) + ".jpg");


//false為isRun


//isRun = false;

//if (false) {

//

//

//imgRun[i] = Toolkit.getDefaultToolkit().createImage(

//"imgRun\\" + (i + 1) + "3.jpg");

//

//

//

//

//} else?

//isRun = false;


if (isRunNum==1){




imgRun[i] = Toolkit.getDefaultToolkit().createImage(

"imgRun\\gif" + (i+1 ) + ".gif");

//

//

//"imgRun\\" + (i + 1) + "3.jpg");

}

// true表示執(zhí)行

// false表示不執(zhí)行

else if(isRunNum==2){

imgReady[i] =?

Toolkit.getDefaultToolkit().createImage(

"imgReady\\gif" + (i+1 ) + "2.gif");


}


}

// new GameJFrame();



new MyThread().start();

//start()為系統(tǒng)自帶的啟動線程函數(shù)


}


});

bt_restart.addActionListener(new ActionListener() {




@Override




public void actionPerformed(ActionEvent e) {

setVisible(false);

new GameJFrame2();

}


});


jp_control.add(bt_start);

jp_control.add(bt_restart);

jp_control.setBorder(BorderFactory.

createTitledBorder("游戲控制器"));



add(game_panel, BorderLayout.CENTER);


add(jp_control, BorderLayout.SOUTH);


setTitle("賽馬游戲");




setSize(1100, 600);




setLocation(150, 100);




//setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


setVisible(true);




}


class MyThread extends Thread{


Random ran=new Random() ;

@Override

public void run() {


while (true) {

// while (true) {

try {

Thread.sleep(100) ;


}?

//捕捉異常

catch (InterruptedException e1) {

// TODO Auto-generated catch block

e1.printStackTrace() ;}

for(int i=0;i<xs. length; i++) {

xs[i]+=10+ran.nextInt (20);

//如果num=10+ran.nextInt (20),那么10<=num<10+20

//int[] a=new int[rand.nextint(20)+1];?

//整數(shù)范圍是[0,20)

//Java nextInt()函數(shù) nextInt(int num)?

//能接受一個整數(shù)作為它所產(chǎn)生的隨機整數(shù)的上限,

//下限為零,比如: nextInt(4)將產(chǎn)生0,1,2,3這4個數(shù)字中的任何一個數(shù)字,

//注意這里不是0-4,而是0-3。

//但下限總是零,不能更改,所以若要達到非零下限的效果,

//必須把上限減去下限的結(jié)果傳給 nextInt( ),然后把下限加入 nextInt( ) 返回的整數(shù)。

}

game_panel.repaint() ;

}

}}


}



package myGameqieHuan;


import java.awt.BorderLayout;

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.BorderFactory;

import javax.swing.ButtonGroup;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JRadioButton;


import runningMan4.GamePanel;

import runningMan4.RunningMan;


public class GameJFrame2 extends JFrame {


class GamePanel extends JPanel {


// paint會無限循環(huán)的

public void paint(Graphics g) {


super.paint(g);

//boolean isRun = false;

for (int i = 0; i < imgBack.length; i++) {



g.drawImage(imgBack[i], 0, (getHeight() * i) / 4, getWidth(),


getHeight() / 4, this);

//點擊按鈕后,一開始isRun默認為true,執(zhí)行有 xs[i]的部分

if (isRunNum==1) {


g.drawImage(imgRun[i], xs[i], (getHeight() * i) / 4 + 30,


getWidth()/8, getHeight() / 5, this);



}?

else if(isRunNum==2){


g.drawImage(imgReady[i], 30, (getHeight() * i) / 4 + 30,


getWidth()/8, getHeight() / 5, this);

}



}}



}


public static void main(String[] args) {




new GameJFrame2();




}

RunningMan[] mans = new RunningMan[4] ;

//四個小人的名字

String[] names={"一號選手","二號選手","三號選手", "四號選手" } ;


//單選按鈕.

JRadioButton[] jr_mans=new JRadioButton[4];

ButtonGroup bg=new ButtonGroup() ;


Image[] imgBack = new Image[4];

Image[] imgReady = new Image[4];

Image[] imgRun = new Image[4];

//MyPanel jp=new MyPanel();

GamePanel game_panel = new GamePanel();

JPanel jp_control = new JPanel();

JButton bt_start = new JButton("開始");

JButton bt_restart=new JButton("重新開始");

//boolean isRun =false;

int isRunNum =2;

int[] xs = new int[4];


public GameJFrame2() {


for (int i = 0; i < imgBack.length; i++) {




imgBack[i] = Toolkit.getDefaultToolkit().createImage(




"imgBack\\" + (i+1) + ".jpg");


//false為isRun


//isRun = false;

//if (false) {

//

//

//imgRun[i] = Toolkit.getDefaultToolkit().createImage(

//"imgRun\\" + (i + 1) + "3.jpg");

//

//

//

//

//} else?

//isRun = false;


if (isRunNum==1){




imgRun[i] = Toolkit.getDefaultToolkit().createImage(

"imgRun\\gif" + (i+1 ) + ".gif");

//

//

//"imgRun\\" + (i + 1) + "3.jpg");

}

// true表示執(zhí)行

// false表示不執(zhí)行

else if(isRunNum==2){

imgReady[i] = Toolkit.getDefaultToolkit().createImage(

"imgReady\\gif" + (i+1 ) + "2.gif");


}jr_mans[i]=new JRadioButton (names[i]);

bg.add(jr_mans[i]) ;

//放到面板上

//放到面板上T

jp_control.add(jr_mans[i]) ;



}

bt_start.addActionListener(new ActionListener() {




@Override




public void actionPerformed(ActionEvent e) {

if(! (jr_mans[0].isSelected() || jr_mans [1] . isSelected()

|| jr_mans [2] . isSelected()|| jr_mans [3] . isSelected())){

JOptionPane . showMessageDialog (GameJFrame2. this, "親,選一個啊,要不你來玩啥了.. .",

"選人",JOptionPane.WARNING_MESSAGE) ;

//沒有返回值的方法可以直接寫一個return不返回任何數(shù)據(jù)只是單純的結(jié)束方法

return;

}


// if部分要寫在for等部分前面,不然會提前切換圖片,執(zhí)行順序不同,效果就不同。

isRunNum = 1;

//

// 下面的for的代碼之所以要再執(zhí)行,是因為不執(zhí)行的話,

// 在下面的for中仍然默認isRunNum = 2;

// 跑動的圖片的調(diào)用不會出來,就不會有圖片跑動了,

// 跑動的圖片的調(diào)用與圖片跑動的調(diào)用的條件是isRunNum 都為 1,

// 我直接鉆研較久才鉆研出來的。

for (int i = 0; i < imgBack.length; i++) {



imgBack[i] = Toolkit.getDefaultToolkit().createImage(




"imgBack\\" + (i+1) + ".jpg");


//false為isRun


//isRun = false;

//if (false) {

//

//

//imgRun[i] = Toolkit.getDefaultToolkit().createImage(

//"imgRun\\" + (i + 1) + "3.jpg");

//

//

//

//

//} else?

//isRun = false;


if (isRunNum==1){




imgRun[i] = Toolkit.getDefaultToolkit().createImage(

"imgRun\\gif" + (i+1 ) + ".gif");

//

//

//"imgRun\\" + (i + 1) + "3.jpg");

}

// true表示執(zhí)行

// false表示不執(zhí)行

else if(isRunNum==2){

imgReady[i] =?

Toolkit.getDefaultToolkit().createImage(

"imgReady\\gif" + (i+1 ) + "2.gif");


}


}

// new GameJFrame();



new MyThread().start() ;

//start()為系統(tǒng)自帶的啟動線程函數(shù)


}


});

bt_restart.addActionListener(new ActionListener() {




@Override




public void actionPerformed(ActionEvent e) {

setVisible(false);

new GameJFrame();

}


});


jp_control.add(bt_start);

jp_control.add(bt_restart);

jp_control.setBorder(BorderFactory.

createTitledBorder("游戲控制器"));



add(game_panel, BorderLayout.CENTER);


add(jp_control, BorderLayout.SOUTH);


setTitle("賽馬游戲");




setSize(1100, 600);




setLocation(150, 100);


//

//

//setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


setVisible(true);




}


class MyThread extends Thread{


Random ran=new Random() ;

@Override

public void run() {


while (true) {

// while (true) {

try {

Thread.sleep(100) ;


}?

//捕捉異常

catch (InterruptedException e1) {

// TODO Auto-generated catch block

e1.printStackTrace() ;}

for(int i=0;i<xs. length; i++) {

xs[i]+=10+ran.nextInt (20);

//如果num=10+ran.nextInt (20),那么10<=num<10+20

//int[] a=new int[rand.nextint(20)+1];?

//整數(shù)范圍是[0,20)

//Java nextInt()函數(shù) nextInt(int num)?

//能接受一個整數(shù)作為它所產(chǎn)生的隨機整數(shù)的上限,

//下限為零,比如: nextInt(4)將產(chǎn)生0,1,2,3這4個數(shù)字中的任何一個數(shù)字,

//注意這里不是0-4,而是0-3。

//但下限總是零,不能更改,所以若要達到非零下限的效果,

//必須把上限減去下限的結(jié)果傳給 nextInt( ),然后把下限加入 nextInt( ) 返回的整數(shù)。

}

game_panel.repaint() ;

}

}}


}


Java swing(自己方法簡化版):賽跑游戲,點擊圖片后圖片會切換與跑動【詩書畫唱】的評論 (共 條)

分享到微博請遵守國家法律
孝昌县| 五常市| 牡丹江市| 大厂| 安阳县| 波密县| 郸城县| 灌云县| 石门县| 灵台县| 渝中区| 富锦市| 光山县| 丹棱县| 和田县| 长白| 彭州市| 清河县| 广宁县| 淮安市| 图们市| 墨脱县| 博爱县| 衡阳市| 苏尼特左旗| 吴川市| 松原市| 安阳市| 景宁| 江口县| 盐亭县| 东山县| 北安市| 弥渡县| 修武县| 礼泉县| 赤城县| 鸡西市| 思茅市| 龙南县| 贡嘎县|