⑴ 請問各位高手:java語言,如何實現按下一鍵後,界面上一個小球按指定方向移動。
按下一個鍵會得到一個事件源,對這個事件源判斷如果是你按下的,就對小球進行移動,
⑵ java寫了一個移動的小球,怎麼移動到中間就變形了,而且不會向下移動了去掉get和set方法就能向下移動了
可以的。解決方案如下:/.setDefaultCloseOperation(JFrame.println(".addKeyListener(mp),希望對你有幫助。不然可以幫你構建一下代碼;/importjava.event.repaint();}elseif(e。你先參考我以前學習時做的一個簡單移動質點的程序李橡(可直接運行)。/importjavax。JavaUI本來就是一個坐標系.*.VK_DOWN){y+=5;/.VK_RIGHT){x+=5.add(mp).VK_LEFT){x-=5;實現監聽this;}@OverridepublicvoidkeyTyped(KeyEvente){/.EXIT_ON_CLOSE);調用repaint函數來重繪界面this;publicvoidpaint(Graphicsg){super.getKeyCode()==KeyEvent:加深對脊芹事件處理機制的理解*鍵盤方向鍵控制小球的運動*/.out;/.*.getKeyChar());被按下"packageJavaBase13_ActionListerner;importjava.awt;if(e;/}@OverridepublicvoidkeyPressed(KeyEvente){/TODOAuto-generatedmethodstub/}}{intx=10;TODOAuto-generatedmethodstub}@OverridepublicvoidkeyReleased(KeyEvente){/,300).*;TODOAuto-generatedmethodstubDemoBw51=newDemoB().paint(g),y.awt。就不知道你要的什麼效果.fillOval(x.VK_UP){y-=5;+e;}/.getKeyCode()==KeyEvent;System.setSize(300;}publicDemoB(){mp=newMyPanel();this;this;inty=10;publicclassDemoBextendsJFrame{MyPanelmp=null樓主你好;/}elseif(e,10.getKeyCode()==KeyEvent;/}elseif(e,10),將參數的值和你需要移動的質點坐標建立關系.getKeyCode()==KeyEvent!你用純JAVA做UI界面要實現動態效果就必須不斷刷新畫面.swing;publicstaticvoidmain(String[]args){//this;this.setVisible(true);g。你的函數的參數也要不斷的改變。應該櫻擾畢就可以;**功能
⑶ JAVA實現,在屏幕內一個小球隨機移動
import javax.microedition.lci.Display;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;import com.sun.midp.lci.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.lci.Canvas;
import javax.microedition.lci.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(BallX>0){BallX-=Speed;}
else{BallDir=Right;};break;
case Right:
if(BallX<ScreenWith){BallX+=Speed;}
else{BallDir=Left;}break;
}
if(BallY>=0&&BallRun){
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
這個很簡單。判滑昌樓主可以網路Java滑鼠和鍵盤的監聽方法,網路有很多成熟的實例和代碼。樓主可自行復制掘扒,而小球的移動樓主只需要監聽到按鍵就將小球的坐標向左移動即可。
附:按鍵監聽事件網址讓中:網頁鏈接
⑸ 怎麼用java模擬小球的圓周運動
//簡單的做個
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;
public class Circle extends JFrame {
public Circle(){
super();
CirclePanel panel=new CirclePanel();
add(panel, "Center");
setSize(500, 500);
setVisible(true);
}
public static void main(String[] args) {
new Circle();
}
class CirclePanel extends JPanel{
public static final double PI=Math.PI;
private int degree=0;
private int axisx;
private int axisy;
public CirclePanel(){
setSize(500, 500);
axisx=getWidth()/2;
axisy=getHeight()/2;
setVisible(true);
Timer timer=new Timer(10,new TimerListener());
timer.start();
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.fillRect(axisx, axisy, 2, 2);
g.drawOval((int)(axisx-100+5), (int)(axisy-100+5), 200, 200);
g.fillOval(-(int)(100*Math.sin(PI*degree/180))+axisx,
(int)(100*Math.cos(PI*degree/180))+axisy, 10, 10);
}
class TimerListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
degree += 1;
repaint();
}
}
}
}
⑹ Java多線程移動的小球
同一個Thread不能纖數旦start兩次
這樣改下
importjava.awt.BorderLayout;
importjava.awt.Color;
importjava.awt.Graphics;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
@SuppressWarnings("serial")
publicclass畢返MoveBall02extendsJFrame{
privateJButtonjbtu=null;
privateBall02ball=null;
Threadt=null;
publicstaticvoidmain(String[]args){
newTest();
}
publicTest(){
this.setTitle("移動的小球");
this.setSize(600,500);
this.setLocation(100,100);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
ball=newBall02(40,40);
this.add(ball);
t=newThread(ball);
jbtu=newJButton("點擊移動小球");
this.add(jbtu,BorderLayout.SOUTH);
jbtu.addActionListener(newMyActionListener());
this.setVisible(true);
}
{
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==jbtu){
//響應滑鼠點擊事件
if(!t.isAlive()){
t=newThread(ball);
t.start();
}
}
}
}
}
@SuppressWarnings("serial")
{
privateintx,y;
publicBall02(intx,inty){
this.x=x;
this.y=y;
}
@Override
publicvoidpaint(Graphicsg){
super.paint(g);
g.setColor(Color.RED);
g.fillOval(x,y,40,40);
}
publicvoidrun(){
try{
for(inti=0;毀擾i<20;i++){
x=y+=3;
this.repaint();
Thread.sleep(100);
}
}catch(InterruptedExceptione){
e.printStackTrace();
}
}
}
⑺ JAVA 怎樣通過右鍵加下鍵完成小球斜著移動
這一塊敗野的技術方法,你查閱一下加法的相散唯關書籍,在普通的書籍裡面都會找到答案的,包括斜著移動垂直移動都可以找到察掘喊答案
⑻ 如何用Java繪圖做出讓小球在背景上運動的效果
java是編程語言里比較難學冊培的鄭祥一門,如果有心從事編程方向的工作,最好到專業機構學習並有更多的項目實踐,更貼近市場,這樣更有利於將來喊姿搏的發展。
⑼ java實現一個小球的自由落體運動
你說的是模擬直線運動還是軌跡是凱姿察拋物線的那種?
如何去模擬說白了就是要根據冊鏈某種演算法計算出物體運動的下一個坐標,做自由落體運動滿足能量守盯茄恆定理,要把它實現出來關鍵是確定一個能量衰減(轉化為其他能量)系數,就是物體以多少速度撞擊然後以多少速度反彈,以多少角度撞擊和以多少角度反彈,這個類似於鏡面反射。
確定了以上這些,實現起來就不難了。
⑽ Java小球移動,下落碰到邊緣向上返回。
try{
Thread.sleep(50);
if派坦(y+塵羨桐20>=getHeight()||y<=0)派態
moveY=-moveY;
y+=moveY;
}catch(Exceptione){
e.printStackTrace();
}