java简单计算器源代码
### Java简单计算器源代码知识点解析####一、概述本文档主要介绍了一段Java语言编写的简单计算器程序源代码。该程序实现了基本的算术运算功能,包括加、减、乘、除以及数字输入等功能,并具备了清空与关闭程序的操作。下面将对这段源代码的关键部分进行详细的解析。 ####二、导入包与类```java import java.awt.Frame; import java.awt.Panel; import java.awt.Color; import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.FlowLayout; import java.awt.TextField; import java.awt.Button; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import import java.awt.event.ActionListener; ``` - **`java.awt`**:提供了构建和管理GUI应用程序所需的低级图形工具。 - **`Frame`**:容器类,用于创建窗口。 - **`Panel`**:容器类,用于放置组件。 - **`Color`**:用于表示颜色。 - **`BorderLayout`**:布局管理器,将容器分为五个部分:北、南、东、西和中心。 - **`GridLayout`**:布局管理器,将容器划分为均匀大小的网格。 - **`FlowLayout`**:布局管理器,组件被放置在容器中从左到右、从上到下的顺序。 - **`TextField`**:文本字段组件,用于输入文本。 - **`Button`**:按钮组件。 - **`WindowAdapter`**和**`WindowEvent`**:用于处理窗口事件。 - **`ActionEvent`**和**`ActionListener`**:用于处理按钮点击等操作事件。 ####三、类结构```java public class Calculator extends Frame { //类成员变量声明Panel panel1 = null; Panel panel2 = null; Panel panel3 = null; TextField txt; Button[] button = new Button[18]; String[] string = {"1", "2", "3", "+", "4", "5", "6", "-", "7", "8", "9", "*", "0", ".", "=", "/", "清空", "关闭"}; static double a; static String s, str; //定义变量,创建对象public Calculator(String c) { //构造方法super(c); initialize(); } public void initialize() { //初始化窗体this.setSize(180, 240); this.setLocation(350, 200); this.setBackground(Color.green); this.setResizable(false); this.addPanel(); } public void addPanel() { //往窗体中添加面板this.add(getPanel1(), BorderLayout.NORTH); this.add(getPanel2(), BorderLayout.CENTER); this.add(getPanel3(), BorderLayout.SOUTH); } // ...其他方法} ``` - **`Calculator`**类继承自`Frame`类。 - **`Panel`**变量用于存储三个不同的面板对象。 - **`TextField`**变量用于存储文本字段对象,显示计算结果。 - **`Button`**数组用于存储按钮对象。 - **`String`**数组用于存储按钮上的文字。 - **`static double a`**和**`static String s, str`**用于存储计算过程中的一些中间值。 ####四、构造函数与初始化```java public Calculator(String c) { //构造方法super(c); initialize(); } public void initialize() { //初始化窗体this.setSize(180, 240); this.setLocation(350, 200); this.setBackground(Color.green); this.setResizable(false); this.addPanel(); } ``` - **构造函数**接收一个字符串参数作为窗口的标题,并调用`initialize`方法初始化窗口。 - **`initialize`**方法设置窗口的大小、位置、背景色,并禁止窗口调整大小,最后调用`addPanel`方法添加面板。 ####五、面板布局```java public Panel getPanel1() { if (panel1 == null) { panel1 = new Panel(); panel1.setLayout(new BorderLayout()); panel1.add(getTextField(), BorderLayout.NORTH); } return panel1; } public Panel getPanel2() { if (panel2 == null) { panel2 = new Panel(); panel2.setLayout(new GridLayout(4, 10, 10)); for (int i = 0; i
31KB
文件大小:
评论区