「java移动小球」java移动的小球

博主:adminadmin 2023-03-18 20:38:06 493

本篇文章给大家谈谈java移动小球,以及java移动的小球对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

新手求教java 多线程小球移动

this.addKeyListener(new KeyListener(){

@Override

public void keyPressed(KeyEvent arg0) {

}

@Override

public void keyReleased(KeyEvent arg0) {

     }

    

     @Override

     public void keyTyped(KeyEvent arg0) {

         if(arg0.getKeyChar()==KeyEvent.VK_ENTER){

    //干活

            }

     }    

});

JAVA实现,在屏幕内一个小球随机移动

import javax.microedition.lcdui.Display;

import javax.microedition.midlet.MIDlet;

import javax.microedition.midlet.MIDletStateChangeException;import com.sun.midp.lcdui.DisplayDeviceAccess;

public class Main extends MIDlet {

public static Display display;

public static GameCanvas Game;

public static MIDlet mid;

public Main() {

Game=new GameCanvas();

display=Display.getDisplay(this);

mid=this;

}

protected void destroyApp(boolean arg0) throws MIDletStateChangeException {}

protected void pauseApp() {}

protected void startApp() throws MIDletStateChangeException {display.setCurrent(Game);}

}

Canvas类=========================import java.util.Random;import javax.microedition.lcdui.Canvas;

import javax.microedition.lcdui.Graphics;

public class GameCanvas extends Canvas implements Runnable{

private int BallX=0;

private int BallY=0;

private int BallW=20;

private int BallH=20;

private boolean BallRun=true;

private byte BallDir=0;

private final byte Left=1;

private final byte Right=2;

private final int ScreenWith=150;

private final int ScreenHight=200;

private final int Speed = 5;

Random rand;

public GameCanvas(){

rand=new Random();

int state=rand.nextInt()%2;

BallDir=(byte)(state==0?Left:Right);

BallX=rand.nextInt()%240;

BallY=rand.nextInt()%320;

new Thread(this).start();

this.setFullScreenMode(true);

}

protected void paint(Graphics g) {

g.setColor(0);

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

g.setColor(255, 255,255);

g.fillArc(BallX, BallY,BallW, BallH, 0,360);

} public void BallRun(){

switch(BallDir){

case Left:

if(BallX0){BallX-=Speed;}

else{BallDir=Right;};break;

case Right:

if(BallXScreenWith){BallX+=Speed;}

else{BallDir=Left;}break;

}

if(BallY=0BallRun){

BallY-=Speed;

}else{BallRun=false;}

if(BallY=ScreenHight!BallRun){

BallY+=Speed;

}else{BallRun=true;}

}

public void run() {

while(true){

BallRun();

this.repaint();

try{Thread.sleep(100);br }catch(Exception ex){ex.printStackTrace();}

} }}

Java多线程移动的小球

同一个Thread不能start两次

这样改下

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Graphics;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

@SuppressWarnings("serial")

public class MoveBall02 extends JFrame {

private JButton jbtu = null;

private Ball02 ball = null;

Thread t = null;

public static void main(String[] args) {

new Test();

}

public Test() {

this.setTitle("移动的小球");

this.setSize(600, 500);

this.setLocation(100, 100);

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

ball = new Ball02(40, 40);

this.add(ball);

t = new Thread(ball);

jbtu = new JButton("点击移动小球");

this.add(jbtu, BorderLayout.SOUTH);

jbtu.addActionListener(new MyActionListener());

this.setVisible(true);

}

class MyActionListener implements ActionListener {

public void actionPerformed(ActionEvent e) {

if (e.getSource() == jbtu) {

// 响应鼠标点击事件

if (!t.isAlive()) {

t = new Thread(ball);

t.start();

}

}

}

}

}

@SuppressWarnings("serial")

class Ball02 extends JPanel implements Runnable {

private int x, y;

public Ball02(int x, int y) {

this.x = x;

this.y = y;

}

@Override

public void paint(Graphics g) {

super.paint(g);

g.setColor(Color.RED);

g.fillOval(x, y, 40, 40);

}

public void run() {

try {

for (int i = 0; i  20; i++) {

x = y += 3;

this.repaint();

Thread.sleep(100);

}

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

关于java移动小球和java移动的小球的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。