Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Java > Java学习笔记之SWING -- 基本SWING程序(基础的ActionListener响应)
【标  题】:Java学习笔记之SWING -- 基本SWING程序(基础的ActionListener响应)
【关键字】:Java,SWING,--,SWING,ActionListener
【来  源】:http://blog.csdn.net/Sozell/archive/2006/09/27/1293010.aspx

Java学习笔记之SWING -- 基本SWING程序(基础的ActionListener响应)

Your Ad Here

前言:随着慢慢的深入,发现其实自己什么都不懂,顿时优越感全失。本来么,做程序的人要这种优越感做什么,只会让你自己走下坡路的,不断的吸取和理解再尝试才是生存之道。还是回到基础的东西来说吧,不然以后又是碰到一大堆的问题。

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

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class ActionListenerTest {
    
public static void main(String[] args) {
        JFrame frame 
= new JFrame("Button Test");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        
final JButton jbClose = new JButton("Close the Frame");
        jbClose.addActionListener(
new ActionListener () {
            
public void actionPerformed(ActionEvent e) {
                
if (e.getSource().equals(jbClose)) {
                    System.exit(
0);
                }

            }

        }

        );
        
        frame.add(jbClose);
        frame.pack();
        frame.setVisible(
true);
    }

}

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

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

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class ButtonFrame extends JFrame implements ActionListener {
        JButton jbClose 
= null;
    
public ButtonFrame() {
        super(
"ButtonFrame Test");
        jbClose 
= new JButton ("Close the Frame in ButtonFrame");
        jbClose.addActionListener(
this);
        
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        
this.add(jbClose);
        
this.pack();
        
this.setVisible(true);
    }

    
    
public void actionPerformed(ActionEvent e) {
        
if (e.getSource().equals(jbClose)) {
            System.exit(
0);
        }

    }

    
public static void main(String[] args) {
        ButtonFrame bf 
= new ButtonFrame();
    }

}

 

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

文件管理框架的介绍:【上一篇】
我身边的JAVA程序员--算法、架构都是灵魂:【下一篇】
【相关文章】
  • java调用ant的任务
  • JAVA学前之准备
  • 用java获得word,excel,pdf等文档的内容
  • Java Servlet文件上传解决方案(主要针对中文)
  • Java列表对象的性能分析和测试
  • Observer模式应用 ---文件改变监视器
  • 玩玩数字图像处理[2]---图像增强
  • java equals
  • java中的数学函数
  • 新网被黑的原因分析--〉低级错误
  • 【随机文章】
  • 关于对我Blog一些文章的说明
  • 全新多媒体播放平台RealOne Player
  • ScopeGuard 取代 std::auto_ptr 实现异常安全
  • CAM350 8.0 添加菜单(Add)
  • 项目经验-李小军
  • fflush ——流清空函数
  • 系统分析师考试大纲(2004年新版)
  • SCA与JBI的联系与区别
  • IE助理师(IEstar) V2.0算法分析
  • FTP,TELNET用户控制
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.