madiankunsortformdk 2023-04-04 20:08 采纳率: 100%
浏览 15
已结题

java键盘事件触发

我的java程序为什么键盘事件没有反应呢,求解先谢谢了。

package ptest;
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
public class MouseMoved implements MouseMotionListener,KeyListener{
  private JFrame frame;
  private  JTextField tf;
  
    public static void main(String[] args) {
        MouseMoved m=new MouseMoved();
   m.go();
    }
public void go() {
    frame=new JFrame("MouseMoved Frame");
    Container contentPane=frame.getContentPane();
    contentPane.add(new Label("Click and drag the mouse"),BorderLayout.NORTH);
    tf=new JTextField(30);
    contentPane.add(tf,BorderLayout.SOUTH);
     frame.addMouseMotionListener(this);
    frame.addKeyListener(this);
    frame.setSize(300,300);
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void mouseMoved(MouseEvent e) {
    String s="Mouse Moved: X="+e.getX()+" Y="+e.getY();
    tf.setText(s);
    //System.out.println("mouse running ...");
}
@Override
public void mouseDragged(MouseEvent e) {
    // TODO Auto-generated method stub
    
}
@Override
public void keyTyped(KeyEvent e) {
    // TODO Auto-generated method stub
    
}
@Override
public void keyPressed(KeyEvent e) {
    System.out.println("running...");
    // String k=" Key Press: "+e.getKeyCode();
    String k="";
     if(e.getKeyCode()==KeyEvent.VK_CONTROL) k="C";
     //tf.setText(k);
    System.out.println("C");
}
@Override
public void keyReleased(KeyEvent e) {
    // TODO Auto-generated method stub
    System.out.println("Key Released..");
}
}


  • 写回答

2条回答 默认 最新

  • pzzhao 2023-04-05 00:15
    关注

    frame.addKeyListener(this);
    换成
    tf.addKeyListener(this);
    就可以了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月13日
  • 已采纳回答 4月5日
  • 创建了问题 4月4日