GUI编程核心技术AWT——写一个简易计算器
2020-08-19 22:42
1121 查看
GUI编程核心技术AWT——写一个简易计算器
面向过程的思想
package com.wei.work; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; //写一个简易计算器 public class Work02 { public static void main(String[] args) { Calaulator calaulator = new Calaulator(); } } //建一个计算器类 class Calaulator extends Frame{ //构造方法(无参) public Calaulator(){ //计算器的组件:3个文本框,一个按钮,一个标签(+号) //3个文本框,这里的num都是String类型 TextField num1 = new TextField(10);//最大字符数 TextField num2 = new TextField(10); TextField num3 = new TextField(20); //一个按钮 Button button = new Button("="); //按钮监听事件, button.addActionListener(new MyCalaulatorListener(num1,num2,num3)); //一个标签(+号) Label label = new Label("+"); //将3个组件流式布局,从左到右 setLayout(new FlowLayout()); add(num1); add(label); add( num2); add( button); add( num3); pack(); setVisible(true); } }//监听器类 // 实现类 实现 接口 class MyCalaulatorListener implements ActionListener{ //获取3个变量 private TextField num1; private TextField num2; private TextField num3; //有参构造 public MyCalaulatorListener(TextField num1 ,TextField num2,TextField num3){ this. num1 = num1; this. num2 = num2; this .num3 = num3; }//监听器 @Override//重写接口里的方法 public void actionPerformed(ActionEvent e) { //按钮监听事件要做的事情 //1.获得加数和被加数 int n1=Integer.parseInt(num1.getText());//用Integer.parseInt把String类型转为int类型 int n2=Integer.parseInt(num2.getText()); //2.将2个数进行加法运算后放到第3个框 num3.setText(""+(n1+n2));//int类型自动转为String类型 //3.清除前2个框 num1.setText(""); num2.setText(""); } }
面向对象的思想(更为重要)
package com.wei.work; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; //写一个简易计算器 public class Work02 { public static void main(String[] args) { //调用非静态方法 new Calaulator().loadFrame(); } } //建一个计算器类 class Calaulator extends Frame{ //属性 TextField num1; TextField num2; TextField num3; //方法 public void loadFrame(){ //计算器的组件:3个文本框,一个按钮,一个标签(+号) //3个文本框,这里的num都是String类型 num1 = new TextField(10);//最大字符数 num2 = new TextField(10); num3 = new TextField(20); //一个按钮 Button button = new Button("="); //按钮监听事件, button.addActionListener(new MyCalaulatorListener(this)); //一个标签(+号) Label label = new Label("+"); //将3个组件流式布局,从左到右 setLayout(new FlowLayout()); add(num1); add(label); add( num2); add( button); add( num3); pack(); setVisible(true); } }//监听器类 // 实现类 实现 接口 class MyCalaulatorListener implements ActionListener{ //获取calaulator计算机这个对象,对象里面就包含属性 Calaulator calaulator = null; //有参构造 public MyCalaulatorListener(Calaulator calaulator){ // this.calaulator = calaulator;//给对象初始化值,把类里的属性赋给对象,然后对象就可以调用类里的属性的 }//监听器 @Override//重写接口里的方法 public void actionPerformed(ActionEvent e) { //按钮监听事件要做的事情 //1.获得加数和被加数 int n1= Integer.parseInt(calaulator.num1.getText());//用Integer.parseInt把String类型转为int类型 int n2= Integer.parseInt(calaulator.num2.getText()); //2.将2个数进行加法运算后放到第3个框 calaulator.num3.setText(""+(n1+n2));//int类型自动转为String类型 //3.清除前2个框 calaulator.num1.setText(""); calaulator.num2.setText(""); } }
用内部类对代码再进行优化
package com.wei.work; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; //写一个简易计算器 public class Work02 { public static void main(String[] args) { //调用非静态方法 new Calaulator().loadFrame(); } } //建一个计算器类 外部类 class Calaulator extends Frame { //属性 TextField num1; TextField num2; TextField num3; //方法 public void loadFrame() { //计算器的组件:3个文本框,一个按钮,一个标签(+号) //3个文本框,这里的num都是String类型 num1 = new TextField(10);//最大字符数 num2 = new TextField(10); num3 = new TextField(20); //一个按钮 Button button = new Button("="); //按钮监听事件, button.addActionListener(new MyCalaulatorListener()); //一个标签(+号) Label label = new Label("+"); //将3个组件流式布局,从左到右 setLayout(new FlowLayout()); add(num1); add(label); add(num2); add(button); add(num3); pack(); setVisible(true); } //监听器类 也是一个内部类 内部类的好处就是可以畅通无阻的访问外部类的方法和属性 // 实现类 实现 接口 private class MyCalaulatorListener implements ActionListener { //监听器 @Override//重写接口里的方法 public void actionPerformed(ActionEvent e) { //按钮监听事件要做的事情 //1.获得加数和被加数 int n1 = Integer.parseInt(num1.getText());//用Integer.parseInt把String类型转为int类型 int n2 = Integer.parseInt(num2.getText()); //2.将2个数进行加法运算后放到第3个框 num3.setText("" + (n1 + n2));//int类型自动转为String类型 //3.清除前2个框 num1.setText(""); num2.setText(""); } } }
相关文章推荐
- GUI编程核心技术AWT——鼠标监听事件、模拟简易画图工具
- GUI编程核心技术AWT——窗口监听
- GUI编程核心技术AWT——键盘监听
- 基于AWT、Swing的GUI编程 - 多个命令共享同一个监听器类
- 基于AWT、Swing的GUI编程 - 多个命令共享同一个监听器类
- 去年5月份,公司项目较少,我就组织了一个用于公司内部办公管理的项目(以下称OA)。第一个目的是为了让公司里面一些技术较差的人员得到真正编程的锻炼;第二个目的是为了使用空闲的人员为公司开发一个产品,在内
- 《Java多线程编程核心技术》学习笔记-第一章
- 搜索引擎核心技术(PHP编程思路) --[1]
- Java并发编程有多难?这几个核心技术你掌握了吗?
- Java多线程编程核心技术
- javaGUI编程碰到的一个问题
- 使用java写一个没有main方法的“Hello World”程序(摘自java核心技术.卷I)
- GUI编程(AWT)
- Java多线程编程核心技术--定时器
- 《Java多线程编程核心技术》读后感(十)
- 《java多线程编程核心技术》之线程间通信
- java多线程编程核心技术7-拾遗增补
- java多线程编程核心技术笔记-停止线程interrupt()方法
- Java 核心技术 卷II (4章)--数据库编程
- Java界面编程(GUI,AWT)