Apc*_*agg 0 java swing keylistener jframe
keylisteners应该上下移动块,但是当按下或按住键(w,s)时它们什么都不做.这是代码(我省略了与问题无关的其他类)
感谢您的时间
import java.awt.event.KeyEvent;
import javax.swing.*;
import java.awt.event.*;
public class Test extends JFrame
{
private static final long serialVersionUID = 1L;
JFrame f = new JFrame();
public void Draw()
{
Handler handle = new Handler();
f.addKeyListener(handle);
f.setFocusable(true);
f.requestFocusInWindow();
}
public static void main(String[] args)
{
JFrame f = new JFrame();
f.setSize(400, 250);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
class Handler extends JFrame implements KeyListener
{
private static final long serialVersionUID = 1L;
public void keyTyped(KeyEvent e)
{
}
@Override
public void keyPressed(KeyEvent e)
{
if ((e.getKeyCode() == KeyEvent.VK_S))
{
System.out.println("testw");
}
if ((e.getKeyCode() == KeyEvent.VK_W))
{
}
}
@Override
public void keyReleased(KeyEvent e)
{
if ((e.getKeyCode() == KeyEvent.VK_UP))
{
}
if ((e.getKeyCode() == KeyEvent.VK_DOWN))
{
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
JFrame的(所有顶层容器)默认情况下,从来没有作出反应的KeyEvent从KeyListener的,那么是不是可以添加KeyListener到JFrame,使用键绑定,而不是
你可以将KeyListener添加到JPanel(JPanel.setFocusable(true)),但KeyBindings在这种情况下也可以使用
KeyListener是正确的听众Keys Shortcuts的三个或三个以上KeyPressed在同一时间