java程序设计用代码怎样编写一个“键盘事件”?

java程序设计用代码怎样编写一个“键盘事件”?,第1张

创建一个关于键盘事件的程序。该程序实现了当用户按下键盘时,程序中的一个面板中将显示用户的键盘输入。为了实现对键盘事件进行处理,容器类必须实现接口KeyListener.该接口定义了3个方法KeyPressed(KeyEvebt e)、KeyReleased(Key-Event e)、KeyTyped(KeyEvent e)。其中,当按下一个键时,调用KeyTyped方法;释放一个键时,调用KeyReleased方法;如果一个字符键被按下,那么会调用KeyTyped方法。因此,当按下一个键时,通常会产生两到三个事件。实验KeyType方法,以显示用户输入的字符。(1)创建一个名为KeyEventDemo的java文件。(2)在该文件中创建KeyEventDemo类,该类继承了JFrame,并实现KeyListener接口。(3)在KeyEventDemo类中实现在KeyPressed、KeyReleased和KeyType方法。(4)在KeyEventDemo类中添加String类型变量。该变量用于保存用户输入的字符。(5)在KeyType方法中调用KeyEvent的getKeyChar()方法,获取用户输入的字符,并保存到String类型变量中。最后调用repaint方法更新显示用户输入的字符串。(6)为KeyEventDemo类添加paint方法,此方法负责显示用户输入的字符。(7)用户也可以在KeyPressed和KeyReleased方法中间调用getKeyCode方法,以获取特殊的按键。比如方向键和退格键。

因为你添加的面板上含有按钮,第一个按钮默认会获得焦点,只有获得焦点组建才会相应事件。因为Frame无法获得焦点,所以就无法再响应事件了。如果把JButton改成JLabel,就不会有问题了。JLabel默认不会获得焦点,焦点仍然在Frame上,所以还会响应事件。

采用楼上,或改为

class MessagePanel extends JPanel {

public MessagePanel() {

setLayout(new GridLayout(8, 1))

JButton b

for (int i = 0i <8i++) {

b = new JButton("没用的按钮")

b.setFocusable(false)

add(b)

}

}

java中 改该构造函数的说明如下

KeyEvent

public KeyEvent(Component source,

int id,

long when,

int modifiers,

int keyCode,

char keyChar)构造一个 KeyEvent 对象。

注意,传入无效的 id 将导致不明确的行为。如果 source 为 null,则此方法抛出 IllegalArgumentException。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11956214.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存