java键盘事件响应过程是什么,具体怎么写

Python018

java键盘事件响应过程是什么,具体怎么写,第1张

implements KeyListener

事件

void keyPressed(KeyEvent e)

按下某个键时调用此方法

void keyReleased(KeyEvent e)

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

void keyTyped(KeyEvent e)

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

有点没看明白。。。。

菜单的事件监听和按钮是一样的,按钮怎么写菜单项就怎么写。

另外我看第一个截图,你的菜单添加事件监听是用内部类这样的写法,那和第二张图片里的implements ActionListener没有什么关系呀?!另外当点击菜单以后会新建一个ShowAllStudents对象,因为这个类继承JFrame,可能在构造方法里有setVisible(true);所以会显示出来,这是从没有JFrame对象到创建JFrame对象的过程,如果你JFrame已经有了的话就直接setVisible()就可以控制那个JFrame是否显示了。

还有就是在actionPerformed()方法里用e.getSource()可以获取消息源,你如果想知道是不是queryAllMenu被点击的话可以在actionPerformed()里加if(e.getSource == queryAllMenu),不过因为它们可能是在2个不同的类里,所以写actionPerformed()的类不一定能看到queryAllMenu,这就自己想办法吧,你可以一个类里有另外一个类的引用,或者((JMenuItem)e.getSource()).getText().equals(XXXX).....

额。。。追问吧。。。。。

你少了一个菜单项,在菜单项上添加监听器。

import java.awt.event.ActionEvent

import java.awt.event.ActionListener

import javax.swing.JFrame

import javax.swing.JMenu

import javax.swing.JMenuBar

import javax.swing.JMenuItem

import javax.swing.JOptionPane

import javax.swing.SwingUtilities

public class TestWin extends JFrame {

 {

  JMenuBar jmb = new JMenuBar()//创建菜单栏

  JMenu jm1 = new JMenu("帮助")//创建菜单

  jmb.add(jm1)

  JMenuItem jmi = new JMenuItem("帮助")//创建菜单项

  jm1.add(jmi)//把菜单项添加到菜单中

  jmi.addActionListener(new ActionListener() {//给菜单项添加动作监听器

   @Override

   public void actionPerformed(ActionEvent e) {

    JOptionPane.showMessageDialog(TestWin.this, "窗口中有一句话")//显示消息对话框

   }

  })

  setJMenuBar(jmb)

  setTitle("时钟")// 标题

  setSize(800, 600)

  setLocationRelativeTo(null)// 窗口居中

  setDefaultCloseOperation(EXIT_ON_CLOSE)// 窗口点击关闭时,退出程序

  setVisible(true)// 窗口可见

 }

 public static void main(String[] args) {

  SwingUtilities.invokeLater(() -> new TestWin())

 }

}