2 回答

TA貢獻1828條經驗 獲得超3個贊
可以的。
解決方案如下:
/.setDefaultCloseOperation(JFrame.println(".addKeyListener(mp),希望對你有幫助。不然可以幫你構建一下代碼;/
import java.event.repaint();
}else if(e。你先參考我以前學習時做的一個簡單移動質點的程序(可直接運行)。
/import javax。
Java UI本來就是一個坐標系.*.VK_DOWN)
{
y+=5;
/.VK_RIGHT)
{
x+=5.add(mp).VK_LEFT)
{
x-=5;實現監聽
this;
}
@Override
public void keyTyped(KeyEvent e) {
/.EXIT_ON_CLOSE);調用repaint函數 來重繪界面
this;
public void paint(Graphics g)
{
super.getKeyCode()==KeyEvent:加深對事件處理機制的理解
* 鍵盤方向鍵控制小球的運動
*/.out;/.*.getKeyChar());被按下"
package JavaBase13_ActionListerner;
import java.awt;
if(e;/
}
@Override
public void keyPressed(KeyEvent e) {
/ TODO Auto-generated method stub
/
}
}
class MyPanel extends JPanel implements KeyListener
{
int x = 10; TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent e) {
/, 300).*; TODO Auto-generated method stub
DemoB w51 = new DemoB().paint(g), y.awt。就不知道你要的什么效果.fillOval(x.VK_UP)
{
y-=5;+e;
}
/.getKeyCode()==KeyEvent;System.setSize(300;
}
public DemoB()
{
mp = new MyPanel();
this;
this;
int y = 10;
public class DemoB extends JFrame{
MyPanel mp = null樓主你好;/
}else if(e, 10.getKeyCode()==KeyEvent;/
}else if(e, 10),將參數的值和你需要移動的質點坐標建立關系.getKeyCode()==KeyEvent!你用純JAVA做UI界面要實現動態效果就必須不斷刷新畫面.swing;
public static void main(String[] args) {
//
this;
this.setVisible(true);
g。你的函數的參數也要不斷的改變。應該就可以;*
* 功能

TA貢獻1946條經驗 獲得超4個贊
你用純JAVA做UI界面要實現動態效果就必須不斷刷新畫面。你的函數的參數也要不斷的改變,將參數的值和你需要移動的質點坐標建立關系。應該就可以。
Java UI本來就是一個坐標系。就不知道你要的什么效果。不然可以幫你構建一下代碼。你先參考我以前學習時做的一個簡單移動質點的程序(可直接運行),希望對你有幫助。
/*
* 功能:加深對事件處理機制的理解
* 鍵盤方向鍵控制小球的運動
*/
package JavaBase13_ActionListerner;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class DemoB extends JFrame{
MyPanel mp = null;
public static void main(String[] args) {
// TODO Auto-generated method stub
DemoB w51 = new DemoB();
}
public DemoB()
{
mp = new MyPanel();
this.add(mp);
//實現監聽
this.addKeyListener(mp);
this.setSize(300, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
class MyPanel extends JPanel implements KeyListener
{
int x = 10;
int y = 10;
public void paint(Graphics g)
{
super.paint(g);
g.fillOval(x, y, 10, 10);
}
@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
//System.out.println("被按下"+e.getKeyChar());
if(e.getKeyCode()==KeyEvent.VK_DOWN)
{
y+=5;
}else if(e.getKeyCode()==KeyEvent.VK_UP)
{
y-=5;
}else if(e.getKeyCode()==KeyEvent.VK_LEFT)
{
x-=5;
}else if(e.getKeyCode()==KeyEvent.VK_RIGHT)
{
x+=5;
}
//調用repaint函數 來重繪界面
this.repaint();
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
}
- 2 回答
- 0 關注
- 761 瀏覽
添加回答
舉報