扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
方法一 实现KeyListener 接口并复写其中的方法
10年积累的成都做网站、成都网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有贵南免费网站建设让你可以放心的选择与我们合作。
public class Test extends JFrame implements KeyListener{
public void keyPressed(KeyEvent e) {} // 按键按下
public void keyReleased(KeyEvent e){} // 按键松开
}
具体使用:
public void keyPressed(KeyEvent e) {
switch (e.getKeyCode()) {
case KeyEvent.VK_ENTER: // 按下回车键
// 在这里写代码...
break;
case KeyEvent.VK_UP: // 按下方向键上
// 在这里写代码...
break;
}
因为你添加的面板上含有按钮,第一个按钮默认会获得焦点,只有获得焦点组建才会相应事件。因为Frame无法获得焦点,所以就无法再响应事件了。如果把JButton改成JLabel,就不会有问题了。JLabel默认不会获得焦点,焦点仍然在Frame上,所以还会响应事件。
采用楼上,或改为
class MessagePanel extends JPanel {
public MessagePanel() {
setLayout(new GridLayout(8, 1));
JButton b;
for (int i = 0; i 8; i++) {
b = new JButton("没用的按钮");
b.setFocusable(false);
add(b);
}
}
请问你的键盘时间事某个特定按钮还是要监听键盘按下的键呢~?我都给你列在下面吧!如果事特定的按钮我给你个例子!其实用的就是一句话!JFrame.getRootPane.setDefaultButton(new JButton()) ;就可以啦!意思是 取跟面板然后设置默认按钮就可以了! 如果你事要监听单个的键盘按钮的话就这样~~~~例子如下!:你看懂这个代码就明白了!package IO;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;public class KeyEventDemo extends JFrame implements ActionListener, KeyListener {
JTextArea txt1;
JButton btnOK;
JPanel pnlMain;
public KeyEventDemo() {
pnlMain = new JPanel();
setContentPane(pnlMain);
txt1 = new JTextArea();
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
String c = e.paramString();
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();
}
}
创建一个关于键盘事件的程序。该程序实现了当用户按下键盘时,程序中的一个面板中将显示用户的键盘输入。为了实现对键盘事件进行处理,容器类必须实现接口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方法,以获取特殊的按键。比如方向键和退格键。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流