我一直在搜索如何从键盘输入信息。我可以找到大量资源来了解如何修改keylistener在按键上的功能,我可以找到如何将它添加到swing文本行,还有很多关于它的其他杂项。但我无法找到如何将其实际放入文件并使用它。
现在我只想要一个主要功能只有一个无限循环的主类,每次按下一个键就会打印"键_已被按下"。我该怎么做?
我做了一个扩展KeyAdapter的MyKeyListener,其中包含keyPressed下字符串的system.out.print(我认为这是可行的)。但是我要在主类中实际使用它呢?包括它和初始化还不够。
这是我的关键监听器文件:`
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
public class GKeyListener extends KeyAdapter {
public void keyPressed(KeyEvent e){
System.out.println("Key Pressed: " + e.getKeyChar());
}
public void keyReleased(KeyEvent e){
System.out.println("Key Released: " + e.getKeyChar());
}
public void keyTyped(KeyEvent e){
System.out.println("Key Typed: " + e.getKeyChar());
}
这是我正在使用的主要文件,并且不知道从哪里开始: import java.awt.KeyEventDispatcher; import java.awt.KeyboardFocusManager; import java.awt.event.KeyEvent;
public class tempMain {
public static void main(String[] args){
while(true){
GKeyListener listen =new GKeyListener();
//addKeyListener(listen);
}
}
答案 0 :(得分:0)
KeyListener
是Java AWT GUI框架的一个类。它是AWT事件处理系统的一部分,例如用于捕获文本输入组件的关键事件(例如TextArea,TextField等)。
没有组件,使用KeyListener没有多大意义。
如果您想进行一些实验,可以使用KeyboardFocusManager
捕获没有文本输入组件的键输入。此示例显示了将KeyListener
绑定到文本组件并使用全局KeyboardFocusManager
。
public class KeyExample extends JFrame {
public KeyExample() {
JTextField jTextField = new JTextField(20);
jTextField.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
System.out.println("KeyListener: " + e.getKeyChar());
}
});
add(jTextField);
pack();
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args) {
KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(new KeyEventDispatcher() {
@Override
public boolean dispatchKeyEvent(KeyEvent e) {
System.out.println("KeyEventDispatcher: " + e.getKeyChar());
return false;
}
});
new KeyExample().setVisible(true);
}
}
您应该仅在极少数情况下使用KeyboardFocusManager
。通常,使用KeyListener
处理事件就足够了。
答案 1 :(得分:0)
此代码的作用:
public class tempMain {
public static void main(String[] args){
while(true){
GKeyListener listen =new GKeyListener();
//addKeyListener(listen);
}
}
重复创建一个KeyListener,数千次!它对使用的KeyListener没有任何作用,并且只在需要时才创建数千个KeyListener。相反,你应该考虑以下几点:
修改强>
你在评论中说明,
但是没有添加文本字段我不确定如何实际调用侦听器实际存在并且正在工作