如何在Java中没有文本字段的情况下接收键输入

时间:2017-06-03 19:35:17

标签: java swing jframe keylistener

我想知道如何能够将Java Swing中的JLabel更改为我按下的按钮,但我不知道我错过了什么。请帮忙。

最终看起来应该是在屏幕顶部显示按下的按键,并在按下时更新JLabel。不要担心Imports,我在实际代码中都有它们。谢谢:))

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) {}
    }
}

1 个答案:

答案 0 :(得分:0)

Austin指出LFK并没有附加到任何东西上,当然,我使用this.addKeyListener(LFK)这一行将它添加到JFrame中,并且确实有效。谢谢:))

相关问题