2 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
可以的。
解決方案如下:
/.setDefaultCloseOperation(JFrame.println(".addKeyListener(mp),希望對(duì)你有幫助。不然可以幫你構(gòu)建一下代碼;/
import java.event.repaint();
}else if(e。你先參考我以前學(xué)習(xí)時(shí)做的一個(gè)簡(jiǎn)單移動(dòng)質(zhì)點(diǎn)的程序(可直接運(yùn)行)。
/import javax。
Java UI本來(lái)就是一個(gè)坐標(biāo)系.*.VK_DOWN)
{
y+=5;
/.VK_RIGHT)
{
x+=5.add(mp).VK_LEFT)
{
x-=5;實(shí)現(xiàn)監(jiān)聽
this;
}
@Override
public void keyTyped(KeyEvent e) {
/.EXIT_ON_CLOSE);調(diào)用repaint函數(shù) 來(lái)重繪界面
this;
public void paint(Graphics g)
{
super.getKeyCode()==KeyEvent:加深對(duì)事件處理機(jī)制的理解
* 鍵盤方向鍵控制小球的運(yùn)動(dòng)
*/.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),將參數(shù)的值和你需要移動(dòng)的質(zhì)點(diǎn)坐標(biāo)建立關(guān)系.getKeyCode()==KeyEvent!你用純JAVA做UI界面要實(shí)現(xiàn)動(dòng)態(tài)效果就必須不斷刷新畫面.swing;
public static void main(String[] args) {
//
this;
this.setVisible(true);
g。你的函數(shù)的參數(shù)也要不斷的改變。應(yīng)該就可以;*
* 功能

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超4個(gè)贊
你用純JAVA做UI界面要實(shí)現(xiàn)動(dòng)態(tài)效果就必須不斷刷新畫面。你的函數(shù)的參數(shù)也要不斷的改變,將參數(shù)的值和你需要移動(dòng)的質(zhì)點(diǎn)坐標(biāo)建立關(guān)系。應(yīng)該就可以。
Java UI本來(lái)就是一個(gè)坐標(biāo)系。就不知道你要的什么效果。不然可以幫你構(gòu)建一下代碼。你先參考我以前學(xué)習(xí)時(shí)做的一個(gè)簡(jiǎn)單移動(dòng)質(zhì)點(diǎn)的程序(可直接運(yùn)行),希望對(duì)你有幫助。
/*
* 功能:加深對(duì)事件處理機(jī)制的理解
* 鍵盤方向鍵控制小球的運(yùn)動(dòng)
*/
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);
//實(shí)現(xiàn)監(jiān)聽
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;
}
//調(diào)用repaint函數(shù) 來(lái)重繪界面
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 關(guān)注
- 748 瀏覽
添加回答
舉報(bào)