### Java编写的计算器知识点 #### 一、项目概述 该Java程序主要实现了一个简单的图形界面计算器功能,能够完成基本的四则运算,并且预留了扩展高级功能(如阶乘、正弦、余弦和指数计算)的空间。通过使用Java Swing框架来构建用户界面,这个程序不仅具备了良好的用户体验,还具有一定的扩展性和灵活性。 #### 二、关键组件及功能 ##### 1. 导入必要的包 在程序开头,导入了`java.awt.*`和`java.awt.event.*`两个包。前者包含了构建GUI所需的基本组件类,后者则提供了事件处理相关的类。 ```java import java.awt.*; import java.awt.event.*; ``` ##### 2. 主类`Calculator` 主类命名为`Calculator`,用于封装整个计算器的功能。其中,`main`方法是程序的入口,创建了`MyWindow`对象。 ```java public class Calculator { public static void main(String[] args) { MyWindow my = new MyWindow(""); } } ``` ##### 3. 用户界面类`MyWindow` `MyWindow`类继承自`Frame`,实现了`ActionListener`接口,用于处理按钮点击事件。这个类负责构建GUI并响应用户的输入操作。 - **构造函数**:初始化窗口和组件。 - **组件布局**:使用`FlowLayout`布局管理器将各个组件排列整齐。 - **按钮注册监听器**:为每个按钮注册监听器,当按钮被点击时,会触发相应的方法。 ```java public class MyWindow extends Frame implements ActionListener { // 成员变量定义 StringBuffer m = new StringBuffer(); TextField tex; Button b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, jia, jian, cheng, chu, deng, dian, qingling, kaifang; public MyWindow(String s) { super(s); // 创建文本框 tex = new TextField(18); // 创建数字按钮 b0 = new Button("0"); b1 = new Button("1"); b2 = new Button("2"); b3 = new Button("3"); b4 = new Button("4"); b5 = new Button("5"); b6 = new Button("6"); b7 = new Button("7"); b8 = new Button("8"); b9 = new Button("9"); // 创建运算符按钮 dian = new Button("."); jia = new Button("+"); jian = new Button("-"); cheng = new Button(""); // 乘号未赋值 chu = new Button("/"); deng = new Button("="); qingling = new Button(""); // 清零按钮未赋值 kaifang = new Button(""); // 开方按钮未赋值 // 设置布局 setLayout(new FlowLayout()); // 添加组件到窗口 add(tex); add(b0); // ... 其他按钮添加 add(qingling); add(deng); // 为按钮注册监听器 b0.addActionListener(this); b1.addActionListener(this); // ... 其他按钮注册监听器 deng.addActionListener(this); qingling.addActionListener(this); kaifang.addActionListener(this); // 设置窗口属性 setBounds(200, 200, 160, 280); setResizable(false); setVisible(true); validate(); // 关闭窗口时退出程序 addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent ee) { System.exit(0); } }); } // 事件处理方法 public void actionPerformed(ActionEvent e) { if (e.getSource() == b0) { m.append("0"); tex.setText(String.valueOf(m)); } else if (e.getSource() == b1) { m.append("1"); tex.setText(String.valueOf(m)); } // ... 其他按钮处理逻辑 } } ``` ##### 4. 事件处理逻辑 `actionPerformed`方法中,根据按钮来源执行相应的操作,比如当点击数字按钮时,会在显示区追加对应的数字。 ```java public void actionPerformed(ActionEvent e) { if (e.getSource() == b0) { m.append("0"); tex.setText(String.valueOf(m)); } else if (e.getSource() == b1) { m.append("1"); tex.setText(String.valueOf(m)); } // ... 其他按钮处理逻辑 } ``` #### 三、总结 该Java程序利用Swing框架实现了一个图形界面计算器,能够完成基本的数学运算。虽然代码中预留了一些未完成的部分,但整体结构清晰、易于理解和扩展。通过完善剩余的运算符按钮和高级功能,可以进一步提升计算器的功能性。
import java.awt.event.*;
public class calculator
{
public static void main(String args[])
{
MyWindow my=new MyWindow("计算器");
}
}
class MyWindow extends Frame implements ActionListener
{ StringBuffer m=new StringBuffer();
int p;
TextField tex;
Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,jia,jian,cheng,chu,deng,dian,qingling,kaifang;
MyWindow(String s)
{
super(s);
//StringBuffer s2=new StringBuffer();
//String s;
tex=new TextField(18);
b0=new Button(" 0 ");
b1=new Button(" 1 ");
b2=new Button(" 2 ");
b3=new Button(" 3 ");
b4=new Button(" 4 ");
b5=new Button(" 5 ");
b7=new Button(" 7 ");
b8=new Button(" 8 ");
b9=new Button(" 9 ");
dian=new Button(" . ");
jia=new Button(" + ");
jian=new Button(" - ");
cheng=new Button(" × ");
chu=new Button(" / ");
deng=new Button(" = ");
qingling=new Button(" 清零 ");
kaifang=new Button(" √ ");
setLayout(new FlowLayout());
add(tex);
add(b0);
add(b1);
add(b2);
add(b3);
add(b4);
add(b5);
add(b6);
add(b7);
add(b8);
add(b9);
add(dian);
add(jia);
add(jian);
剩余9页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助