Java键盘监听事件(急啊!)

Java键盘监听事件(急啊!),第1张

把你的代码按照你的意思改动了一下,应该可以满足你的要求:

import java.awt.*

import java.awt.event.*

import javax.swing.*

public class KeyEventDemo extends JFrame implements ActionListener, KeyListener {

JTextField txt1

JButton btnOK

JPanel pnlMain

public KeyEventDemo() {

pnlMain = new JPanel()

setContentPane(pnlMain)

txt1 = new JTextField(10)

btnOK = new JButton("确认")

txt1.addKeyListener(this)//应该是在 TextField 里添加键盘监听事件

btnOK.addActionListener(this)//在按钮上添加事件监听

pnlMain.setLayout(new BorderLayout())//添加布局器

pnlMain.add(txt1,BorderLayout.NORTH)//TextField 布局在上方

pnlMain.add(btnOK,BorderLayout.SOUTH)//Button 布局在下方

setTitle("好啊")

setSize(300, 200)

setVisible(true)//viersible() 函数应该放在最后

setDefaultCloseOperation(EXIT_ON_CLOSE)

}

public void keyTyped(KeyEvent e) { //6

char c = e.getKeyChar()

if (c == 'o') {

System.out.println("快捷键 " + e.getKeyChar() + " 按下" )

txt1.setText("收到,呵呵")

}else{

System.out.println("普通键 " + e.getKeyChar() + " 按下" )

}

}

public void actionPerformed(ActionEvent event){

System.out.println("按钮按下")

}

public void keyPressed(KeyEvent e) {} //函数要和接口 KeyListener 中定义的一摸一样

public void keyReleased(KeyEvent e) {} //函数要和接口 KeyListener 中定义的一摸一样

public static void main(String[] args) {

new KeyEventDemo()

}

}

额,抽象类其实就是定义了一些接口但又没有去实现的类,这些类定义了接口等它的子类来实现,如果它的子类没有实现这些接口,那么这些子类也是抽象类。抽象类是不能用 new 的方式产生的。

你似乎问错了,应该问接口是啥子东西,接口是。。。。一大堆的东西好难策清楚,看看下面的链接吧,会受益良多的:

http://dev.yesky.com/436/7581936.shtml

addKeyListener

public void addKeyListener(KeyListener l)

添加指定的按键侦听器,以接收发自此组件的按键事件。如果 l 为 null,则不会抛出异常并且不执行动作。

java.awt.event

接口 KeyListener

用于接收键盘事件(击键)的侦听器接口。旨在处理键盘事件的类要么实现此接口(及其包含的所有方法),要么扩展抽象 KeyAdapter 类(仅重写有用的方法)。

然后使用组件的 addKeyListener 方法将从该类所创建的侦听器对象向该组件注册。按下、释放或键入键时生成键盘事件。然后调用侦听器对象中的相关方法并将该 KeyEvent 传递给它。

方法摘要

voidkeyPressed(KeyEvent e)

按下某个键时调用此方法。

voidkeyReleased(KeyEvent e)

释放某个键时调用此方法。

voidkeyTyped(KeyEvent e)

键入某个键时调用此方法。

1,为相应的控件设置KeyListener()的监听

2,实现接口中的方法

3,主要重写keyPressed()这个方法

4,书写逻辑

5,见代码

public void keyPressed(KeyEvent e) {

if(e.getKeyCode()==KeyEvent.VK_1&&e.getKeyCode()==KeyEvent.VK_2){

System.out.println("1,2键被点击了。。。")

}

}ps,还可以自己写一个数组记录每个按键的状态,根据状态值进行逻辑处理。


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

原文地址:https://54852.com/bake/11917823.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存