结构图:
如何用java写一个简易的加法计算器?本人菜鸟一枚,半个小时完成。大部分代码的解读注释已经标记好了,如下
-
程序入口
程序的main方法应该始终保持干净清爽,不应该乱七八糟
在这里,我们定义一个公共类 TestCompu(计算器测试)
public class TestCompu {
public static void main(String[] args) {
Compu compu = new Compu();
}
}
2.计算器需要一个窗口来展示,于是我们创建一个 Compu的窗口(Frame),只需要继承Frame就可以调用Frame中所有方法,其余的解释见代码中,
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
//计算器类
public class Compu extends Frame {
//用构造器设置默认属性和方法
public Compu(){
//组件设置
//3 * 文本框
TextField num1 = new TextField(10); //‘10’可以理解为文本框长度
TextField num2 = new TextField(10);
TextField num3 = new TextField(20);
//1 * 标签
Label label = new Label("+");
//1 * 按钮
Button button = new Button("=");
//设置布局-采用流式布局
setLayout(new FlowLayout());
//组件可见(注意顺序)
add(num1);
add(label);
add(num2);
add(button);
add(num3);
//自适应窗口参数
pack();
//窗口可见
setVisible(true);
//为按钮‘=’设置监听来实现功能
//需要一个ActionListener,所以我们需要构造一个 ActionListener 建下一个class
MyActionListener myActionListener = new MyActionListener(num1,num2,num3);
button.addActionListener(myActionListener);
//设置关闭窗口的方法
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
3.在上面的Compu的类中,由于按键的功能需要依赖监听器来实现,所以我们,创建一个名为MyActionListener的类
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class MyActionListener implements ActionListener {
//准备三个文本框接受
private TextField num1,num2,num3;
//有参构造
public MyActionListener(TextField num1,TextField num2,TextField num3) {
//把Compu中的文本框 numx 传给 监听器中的 num x
this.num1 = num1;
this.num2 = num2;
this.num3 = num3;
}
//按钮功能设置
@Override
public void actionPerformed(ActionEvent e) {
//1. 将 num1 和 num2 这俩文本框中的值 相加
//首先,将num1 num2 通过有参构造以参数的形式传到这个类 并以 int形式 赋值给 n1 n2 (待会要用它俩来计算)
int n1 = Integer.parseInt(num1.getText());
int n2 = Integer.parseInt(num2.getText());
//2. 相加之和给文本框num3
num3.setText(""+(n1+n2)); //num3是文本框不是数值!!!
//3. 相加后清除num1 num2 文本框中的数
num1.setText(" ");
num2.setText(" ");
}
}
运行效果:
以上就是这个简易加法运算器的全部代码了,但这种写法不是最优,但最适合新手理解上手,如果有注释错误的地方,请多多包涵,欢迎指正,如果觉得写的还不错,也请点赞肯定一下,感激感激!!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)