在Java中,如何在没有文本字段的情况下接收关键输入
我想知道如何将JavaSwing中的JLabel更改为我按下的按钮,但我不知道我遗漏了什么。请帮忙 它的最终外观应该是屏幕顶部,它将显示正在按下的键,并在按下时更新JLabel。不要担心导入,我在实际代码中都有。谢谢:)在Java中,如何在没有文本字段的情况下接收关键输入,java,swing,jframe,keylistener,Java,Swing,Jframe,Keylistener,我想知道如何将JavaSwing中的JLabel更改为我按下的按钮,但我不知道我遗漏了什么。请帮忙 它的最终外观应该是屏幕顶部,它将显示正在按下的键,并在按下时更新JLabel。不要担心导入,我在实际代码中都有。谢谢:) Austin指出LFK并没有附加到任何东西上,果然,我使用this.addKeyListener(LFK)这行代码将它添加到JFrame中,果然奏效了。谢谢:)您在尝试编译代码时是否出现错误看起来您并没有向任何内容添加密钥侦听器(LFK)。因此,您正在创建一个KeyListen
Austin指出LFK并没有附加到任何东西上,果然,我使用this.addKeyListener(LFK)这行代码将它添加到JFrame中,果然奏效了。谢谢:)您在尝试编译代码时是否出现错误看起来您并没有向任何内容添加密钥侦听器(LFK)。因此,您正在创建一个KeyListener,但它没有分配给任何对象,因此它可以响应关键事件。请尝试将其添加到JFrame(
this.addKeyListener(LFK)
)或JPanel(P1.addKeyListener(LFK)
)。谢谢,P1.addKeyListener(LFK)不起作用,但这个.addKeyListener(LFK)按照我的要求工作。谢谢:)
public class RandomFrame extends JFrame{
Dimension Size = new Dimension(800,800);
ListenForKeys LFK = new ListenForKeys();
JLabel JInput = new JLabel("");
JPanel P1 = new JPanel();
public static void main(String[] args) {
new RandomFrame();
}
public RandomFrame() {
super("RandomFrame");
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setSize(Size);
P1.add(JInput);
this.add(P1);
this.setVisible(true);
}
private class ListenForKeys implements KeyListener {
@Override
public void keyPressed(KeyEvent e) {
String Key = String.valueOf(e.getKeyChar());
JInput.setText(Key);
}
@Override
public void keyReleased(KeyEvent e) {}
@Override
public void keyTyped(KeyEvent e) {}
}
}