【发布时间】:2017-11-04 23:34:13
【问题描述】:
我想知道如何在 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) {}
}
}
【问题讨论】:
-
当你尝试编译你的代码时是否遇到错误
-
您似乎没有将密钥侦听器 (LFK) 添加到任何内容。因此,您正在创建一个 KeyListener,但它没有分配给任何东西,因此它可以响应关键事件。尝试将它添加到 JFrame (
this.addKeyListener(LFK)) 或 JPanel (P1.addKeyListener(LFK))。 -
谢谢,P1.addKeyListener(LFK) 不起作用,但是 this.addKeyListener(LFK) 就像我想要的那样起作用。谢谢你:)
标签: java swing jframe keylistener