JLabel随键盘上下左右移动 窗口中显示字符串“java程序设计”,按下键盘上的箭头键,可按照箭头方向移动(提示:得到键盘键代码的方法是e.getKeyCode(),上、下、左、右键的编码分别用常量VK_UP 、VK_DOWN 、VK_LEFT 、VK_RIGHT表示刚学java 这个都不懂。。! 求答案 啊 ,万分感谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在JPanel添加键盘事件,根据按下的键(VK_UP,VK_DOWN,VK_LEFT,VK+RIGHT)修改JLabel的location属性 package NIITwork;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import java.util.Random;import javax.swing.*;public class test extends JFrame implements KeyListener{ /** * */ JLabel jb; JPanel jp; int x=50,y=30; public static void main(String[] args) { // TODO Auto-generated method stub test ts=new test(); } public test() { jb=new JLabel("java 程序设计"); //jb.addActionListener(this); jp=new JPanel(); jp.add(jb); jb.setLocation(x, y); this.add(jp); this.setSize(500,300); this.setVisible(true); } @Override public void keyPressed(KeyEvent e) { // TODO Auto-generated method stub switch(e.getKeyCode()) { case KeyEvent.VK_LEFT: jb.setLocation(x, y); break ; case KeyEvent.VK_RIGHT: jb.setLocation(x, y); break ; case KeyEvent.VK_UP: setLocation(x, y); break; case KeyEvent.VK_DOWN: setLocation(x, y) ; break; } } @Override public void keyReleased(KeyEvent e) { // TODO Auto-generated method stub } @Override public void keyTyped(KeyEvent e) { // TODO Auto-generated method stub } }我的代码 在这,可是动不了 import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import java.util.Random;import javax.swing.*;public class Test extends JFrame implements KeyListener{ JLabel jb; JPanel jp; int x=200,y=200; int increment=10; public static void main(String[] args) { // TODO Auto-generated method stub Test ts=new Test(); } public Test() { jb=new JLabel("java 程序设计"); //jb.addActionListener(this); jp=new JPanel(); jb.setLocation(x, y); jp.add(jb); this.add(jp); this.setSize(500,500); this.setVisible(true); this.addKeyListener(this);//没有添加事件监听器 } @Override public void keyPressed(KeyEvent e) { // TODO Auto-generated method stub switch(e.getKeyCode()) { case KeyEvent.VK_LEFT: x-=increment;//这里要同时更改标签的横纵坐标 break ; case KeyEvent.VK_RIGHT: x+=increment; break ; case KeyEvent.VK_UP: y-=increment; break; case KeyEvent.VK_DOWN: y+=increment; break; } jb.setLocation(x,y); } @Override public void keyReleased(KeyEvent e) { // TODO Auto-generated method stub } @Override public void keyTyped(KeyEvent e) { // TODO Auto-generated method stub }}注意要为事件源添加监听器,否则不会监听该事件。这里是JPanel 能动了。。最开始的JLabel 我设置了半天都在上面。。怎么不居中。 有关用poi读取excel的小问题 excel上传数据内存溢出怎么办 有哪位大侠知道DB2安装完成后再重起机子后就打不开控制中心是啥原因吗 随机数问题 java中进度条如何显示sql server2000数据库备份还原的进度 请提示一下实现浏览器接收图片的方法 从2007年5月31日开始 循环显示每个月的31日,循环10次,高手们有没有好办法 自定义异常为什么没有起作用? 关于程序的运行时间统计。在线等待,谢谢!! 为什么要JAVA?? String.this什么意思? 一道有趣的线程问题!
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Random;
import javax.swing.*;
public class test extends JFrame implements KeyListener{ /**
*
*/ JLabel jb;
JPanel jp;
int x=50,y=30;
public static void main(String[] args) {
// TODO Auto-generated method stub
test ts=new test();
}
public test()
{
jb=new JLabel("java 程序设计");
//jb.addActionListener(this);
jp=new JPanel();
jp.add(jb);
jb.setLocation(x, y);
this.add(jp);
this.setSize(500,300);
this.setVisible(true);
} @Override
public void keyPressed(KeyEvent e) { // TODO Auto-generated method stub
switch(e.getKeyCode())
{
case KeyEvent.VK_LEFT:
jb.setLocation(x, y);
break ;
case KeyEvent.VK_RIGHT:
jb.setLocation(x, y);
break ; case KeyEvent.VK_UP:
setLocation(x, y);
break; case KeyEvent.VK_DOWN:
setLocation(x, y) ;
break;
} }
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
}
我的代码 在这,可是动不了
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Random;
import javax.swing.*;
public class Test extends JFrame implements KeyListener{ JLabel jb;
JPanel jp;
int x=200,y=200;
int increment=10;
public static void main(String[] args) {
// TODO Auto-generated method stub
Test ts=new Test();
}
public Test()
{ jb=new JLabel("java 程序设计");
//jb.addActionListener(this);
jp=new JPanel();
jb.setLocation(x, y);
jp.add(jb);
this.add(jp);
this.setSize(500,500);
this.setVisible(true);
this.addKeyListener(this);//没有添加事件监听器
} @Override
public void keyPressed(KeyEvent e) { // TODO Auto-generated method stub
switch(e.getKeyCode())
{
case KeyEvent.VK_LEFT:
x-=increment;//这里要同时更改标签的横纵坐标
break ;
case KeyEvent.VK_RIGHT:
x+=increment;
break ; case KeyEvent.VK_UP:
y-=increment;
break; case KeyEvent.VK_DOWN:
y+=increment;
break;
}
jb.setLocation(x,y);
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
}
注意要为事件源添加监听器,否则不会监听该事件。这里是JPanel