java中的内部类和匿名内部类

本文介绍了一个使用Java Swing框架实现的简易加法计算器程序。该程序通过三个文本框进行操作,用户可以在前两个文本框中输入数值,点击等号按钮后,程序将计算这两个数值的和,并将结果显示在第三个文本框中。文章展示了如何利用Swing组件和事件监听器完成基本的界面设计及功能实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接看程序。

package org.ui.swing.actionEvent;

import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

/**
* 用内部类实现:
* 该程序实现的功能是加法计算,有三个输入框,点按钮时计算出前两个输入框的和放到第三个输入框中。
* 20090107---22:54
* 内部类的优点:
* 可以方便的访问包装类的成员方法和函数
* 可以更清楚的组织逻辑,防止不应该被其他类访问时即对外隐藏信息
* */
public class TFMath3 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
TFrame3 fm=new TFrame3();
fm.launchFrame();
}
}

class TFrame3 extends Frame{
TextField t1,t2,t3;
public TFrame3(){
//使用匿名内部类实现点击关闭图标窗口关闭。
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.out.println("over");
setVisible(false);
System.exit(0);//正常退出
//System.exit(-1);//非正常退出
}

});
}
public void launchFrame(){

t1=new TextField(10);//宽度10
t2=new TextField(10);
t3=new TextField(15);
Label lb=new Label("+");
Button bt=new Button("=");
//给button注册事件监听器
bt.addActionListener(new MyMonitor());
setLayout(new FlowLayout());//因为frame默认是borderlayout,所以要设置FlowLayout
add(t1);
add(lb);
add(t2);
add(bt);
add(t3);
pack();

this.setVisible(true);
}

//因为使用的是内部类,所以可以直接访问外部成员
private class MyMonitor implements ActionListener{
public void actionPerformed(ActionEvent e){
int num1=Integer.parseInt(t1.getText());
int num2=Integer.parseInt(t2.getText());
t3.setText(""+(num1+num2));
}
}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值