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(空)

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();
        }
    }


}