在java中如何在MenuBar中的MenuItem中增加监听?

在java中如何在MenuBar中的MenuItem中增加监听?,第1张

用我以前写的例子来说明:

JMenuItem menu102 = new JMenuItem("菜单102")

menu102.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

addIFame(new InternalFrame())

}

})

上述代码就能实现在MenuBar中的MenuItem中增加监听

/**

* WindowListener:窗口监听事件 ex:关闭、最小化...

* @author Administrator

*/

public class WindowListenerDemo {

public static void main(String[] args) {

// TODO Auto-generated method stub

JFrame frame = new JFrame("窗口程序")//创建一个带标题的窗口对象frame

frame.setVisible(true)//显示窗口

frame.setSize(600, 400)//设置窗口大小

frame.setLocationRelativeTo(null)//设置窗口居中

//frame.setDefaultCloseOperation(3)//点击X关闭程序 3为结束程序

frame.setLayout(null)//清空布局

MyWindowListener myWindowListener = new MyWindowListener()//创建一个窗口监听事件对象

frame.addWindowListener(myWindowListener)//添加myMouseListener鼠标监听事件

frame.dispose()//关闭程序

}

}

class MyWindowListener implements WindowListener{

@Override

public void windowOpened(WindowEvent e) {

// TODO Auto-generated method stub

}

@Override

public void windowClosing(WindowEvent e) {

// TODO Auto-generated method stub

}

/*

* 关闭窗口之后,自动调用此方法

*/

@Override

public void windowClosed(WindowEvent e) {

// TODO Auto-generated method stub

System.out.println("您关闭了窗口...")

}

/*

* 最小化窗口之后,自动调用此方法

*/

@Override

public void windowIconified(WindowEvent e) {

// TODO Auto-generated method stub

System.out.println("您把窗口最小化了....")

}

@Override

public void windowDeiconified(WindowEvent e) {

// TODO Auto-generated method stub

}

@Override

public void windowActivated(WindowEvent e) {

// TODO Auto-generated method stub

}

@Override

public void windowDeactivated(WindowEvent e) {

// TODO Auto-generated method stub

}

}

Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener()

{

@Override

public void eventDispatched(AWTEvent event)

{

if(event instanceof KeyEvent)

{

KeyEvent ke=(KeyEvent)event

if(ke.getID()==KeyEvent.KEY_RELEASED/*键盘按下后释放时触发*/&&ke.getKeyCode()==KeyEvent.VK_ESCAPE/*你的键值KeyEvent.XXX*/)

{

//你的处理方法在这,JWindow的引用.怎么样?

}

}

else if(event instanceof MouseEvent)

{

MouseEvent me=(MouseEvent)event

if(me.getID()==MouseEvent.MOUSE_RELEASED/*鼠标按下后释放时触发*/)

{

//你的处理方法在这

}

}

//好些呢,想监听啥就监听啥

}

}, AWTEvent.MOUSE_EVENT_MASK+AWTEvent.MOUSE_MOTION_EVENT_MASK+AWTEvent.MOUSE_WHEEL_EVENT_MASK+AWTEvent.KEY_EVENT_MASK)

如果你的窗口隐藏了,还想监听,那可能需要JNA库的支持


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存