快速业务通道

Swing中的ActionListener响应研究 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21

Swing中的ActionListener响应研究

时间:2011-01-06

关于ActionListener的响应问题,就我的理解可以有两种方法。第一种就是你放到一个新的类里面,实现ActionListener接口,然后写好public void actionPerformed(ActionEvent e)的方法。这种当继承自JFrame还是蛮有用的,但是如果是一个在public static void main(String[] args)中建立一个JFrame,然后对里面的(比如按钮)实现监听,那么去实现ActionListener接口就不那么合适了(哎,很多都是当你做过后才知道什么是合适的),不过Java提供了另一种解决方案:

Swing中的ActionListener响应研究 - 编程入门网import java.awt.*; Swing中的ActionListener响应研究 - 编程入门网import javax.swing.*; Swing中的ActionListener响应研究 - 编程入门网import java.awt.event.*; Swing中的ActionListener响应研究 - 编程入门网 Swing中的ActionListener响应研究 - 编程入门网Swing中的ActionListener响应研究 - 编程入门网public class ActionListenerTest ...{ Swing中的ActionListener响应研究 - 编程入门网Swing中的ActionListener响应研究 - 编程入门网 public static void main(String[] args) ...{   Swing中的ActionListener响应研究 - 编程入门网 JFrame frame = new JFrame("Button Test");   Swing中的ActionListener响应研究 - 编程入门网 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   Swing中的ActionListener响应研究 - 编程入门网   Swing中的ActionListener响应研究 - 编程入门网 final JButton jbClose = new JButton("Close the Frame");   Swing中的ActionListener响应研究 - 编程入门网Swing中的ActionListener响应研究 - 编程入门网 jbClose.addActionListener(new ActionListener () ...{    Swing中的ActionListener响应研究 - 编程入门网Swing中的ActionListener响应研究 - 编程入门网 public void actionPerformed(ActionEvent e) ...{     Swing中的ActionListener响应研究 - 编程入门网Swing中的ActionListener响应研究 - 编程入门网 if (e.getSource().equals(jbClose)) ...{      Swing中的ActionListener响应研究 - 编程入门网 System.exit(0);     Swing中的ActionListener响应研究 - 编程入门网 }    Swing中的ActionListener响应研究 - 编程入门网 }   Swing中的ActionListener响应研究 - 编程入门网 }   Swing中的ActionListener响应研究 - 编程入门网 );   Swing中的ActionListener响应研究 - 编程入门网   Swing中的ActionListener响应研究 - 编程入门网 frame.add(jbClose);   Swing中的ActionListener响应研究 - 编程入门网 frame.pack();   Swing中的ActionListener响应研究 - 编程入门网 frame.setVisible(true);  Swing中的ActionListener响应研究 - 编程入门网 } Swing中的ActionListener响应研究 - 编程入门网}

Swing中的ActionListener响应研究(2)

时间:2011-01-06

也就是在addActionListener的参数中新定义到一个ActionListenner并重写它的actionPerformed。不过要注意的是,这个actionPerformed一定要是public的,不然权限不够。还有就是里面用到的组件在外部必须声明为final的,这点也许会造成些许使用的限制。

另一种其实是很常用的那种,前面也用到过,不过这里再写一遍好了,翻来翻去很麻烦的。

Swing中的ActionListener响应研究 - 编程入门网import java.awt.*; Swing中的ActionListener响应研究 - 编程入门网import javax.swing.*; Swing中的ActionListener响应研究 - 编程入门网import java.awt.event.*; Swing中的ActionListener响应研究 - 编程入门网Swing中的ActionListener响应研究 - 编程入门网public class ButtonFrame extends JFrame implements ActionListener ...{ Swing中的ActionListener响应研究 - 编程入门网 JButton jbClose = null; Swing中的ActionListener响应研究 - 编程入门网Swing中的ActionListener响应研究 - 编程入门网 public ButtonFrame() ...{   Swing中的ActionListener响应研究 - 编程入门网 super("ButtonFrame Test");   Swing中的ActionListener响应研究 - 编程入门网 jbClose = new JButton ("Close the Frame in ButtonFrame");   Swing中的ActionListener响应研究 - 编程入门网 jbClose.addActionListener(this);   Swing中的ActionListener响应研究 - 编程入门网 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   Swing中的ActionListener响应研究 - 编程入门网   Swing中的ActionListener响应研究 - 编程入门网 this.add(jbClose);   Swing中的ActionListener响应研究 - 编程入门网 this.pack();   Swing中的ActionListener响应研究 - 编程入门网 this.setVisible(true);  Swing中的ActionListener响应研究 - 编程入门网 }  Swing中的ActionListener响应研究 - 编程入门网  Swing中的ActionListener响应研究 - 编程入门网Swing中的ActionListener响应研究 - 编程入门网 public void actionPerformed(ActionEvent e) ...{   Swing中的ActionListener响应研究 - 编程入门网Swing中的ActionListener响应研究 - 编程入门网 if (e.getSource().equals(jbClose)) ...{    Swing中的ActionListener响应研究 - 编程入门网 System.exit(0);   Swing中的ActionListener响应研究 - 编程入门网 }  Swing中的ActionListener响应研究 - 编程入门网 }  Swing中的ActionListener响应研究 - 编程入门网Swing中的ActionListener响应研究 - 编程入门网 public static void main(String[] args) ...{   Swing中的ActionListener响应研究 - 编程入门网 ButtonFrame bf = new ButtonFrame();  Swing中的ActionListener响应研究 - 编程入门网 } Swing中的ActionListener响应研究 - 编程入门网}

两个程序的效果是一样的,都是点击了按钮后就结束程序。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号