Java 为什么没有';你不能动吗?
为什么,当我左键输入时,标签不会自动移动?请帮帮我。。。Java 为什么没有';你不能动吗?,java,Java,为什么,当我左键输入时,标签不会自动移动?请帮帮我。。。 我有一个JFrame的按键侦听器,为什么我在键盘上键入left时它不进入我的按键事件?关于按键侦听器。 从e.getkeyCode()的帮助中: 返回与此事件中的键关联的整数键代码。 返回:键盘上实际键的整数代码。(用于 KEY_类型的事件,keyCode为VK_未定义。) 将您的代码放入keyPressed或keyreased方法中,您就可以按原样使用代码了 值得一提的是,这一答复中指出: KeyTyped事件只识别可打印字符和密钥,因
我有一个JFrame的按键侦听器,为什么我在键盘上键入left时它不进入我的按键事件?关于按键侦听器。 从
e.getkeyCode()
的帮助中:
返回与此事件中的键关联的整数键代码。
返回:键盘上实际键的整数代码。(用于
KEY_类型的事件,keyCode为VK_未定义。)
将您的代码放入keyPressed
或keyreased
方法中,您就可以按原样使用代码了
值得一提的是,这一答复中指出:
KeyTyped事件只识别可打印字符和密钥,因此它无论如何都不会与VK_LEFT一起工作
关于移动标签。
setBounds()
仅当您要将组件放入具有边界的组件的布局为null
时才有意义
再次引用java文档:
每个JPanel对象都初始化为使用FlowLayout,除非
在创建JPanel时以不同的方式指定
在您的情况下,为了能够按照给定的坐标绘制标签img
,您需要添加:
pan.setLayout(空)关于keyListener的代码>。
从e.getkeyCode()
的帮助中:
返回与此事件中的键关联的整数键代码。
返回:键盘上实际键的整数代码。(用于
KEY_类型的事件,keyCode为VK_未定义。)
将您的代码放入keyPressed
或keyreased
方法中,您就可以按原样使用代码了
值得一提的是,这一答复中指出:
KeyTyped事件只识别可打印字符和密钥,因此它无论如何都不会与VK_LEFT一起工作
关于移动标签。
setBounds()
仅当您要将组件放入具有边界的组件的布局为null
时才有意义
再次引用java文档:
每个JPanel对象都初始化为使用FlowLayout,除非
在创建JPanel时以不同的方式指定
在您的情况下,为了能够按照给定的坐标绘制标签img
,您需要添加:
pan.setLayout(空)代码>
import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class Game implements KeyListener {
static int imgx = 20;
static int imgy = 20;
JFrame fen = new JFrame();
JPanel pan = new JPanel();
public void display() {
fen.add(pan);
fen.addKeyListener(this);
JLabel img = new JLabel();
img.setText("zzz");
img.setBounds(imgx, imgy, 20, 20);
pan.add(img);
fen.setVisible(true);
fen.setSize(480, 272);
}
public static void main(String[] args) {
Game disp = new Game();
disp.display();
}
@Override
public void keyTyped(KeyEvent e) {
//throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
if(e.getKeyCode() == KeyEvent.VK_LEFT) {
System.out.println("test");
imgx -= 10;
fen.revalidate();
}
}
}