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 关注
- 718 浏览
添加回答
举报