java-超简易计算器
编写思路:
- 在框架中加入三个文本框,两个文本框记录数字,第三个文本框输出计算结果。
- 加减乘除计算用四个按钮实现,点击相应按钮出现相应计算结果。
示例:
代码实现:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Calculator {
static JFrame j=new JFrame("简易计算器");
static JLabel jl1=new JLabel("Number 1");
static JLabel jl2=new JLabel("Number 2");
static JLabel jl3=new JLabel("Result");
static JButton jb1=new JButton("Add");
static JButton jb2=new JButton("Subtract");
static JButton jb3=new JButton("Multiply");
static JButton jb4=new JButton("Divide");
static JTextField jt1=new JTextField(7);
static JTextField jt2=new JTextField(7);
static JTextField jt3=new JTextField(15);
static JPanel jp=new JPanel();
static JPanel jp2=new JPanel();
static GridLayout g=new GridLayout(1,4);
static FlowLayout f=new FlowLayout();
public static void main(String[] args) throws Exception{
jt1.setHorizontalAlignment(JTextField.RIGHT); //设置文本内容从右开始
jt2.setHorizontalAlignment(JTextField.RIGHT);
jt3.setHorizontalAlignment(JTextField.RIGHT);
jt3.setEditable(false); //设置为不可编辑
j.setLayout(null);
jp.setLayout(f);
j.setBounds(650,400,600,150);
jp.setBounds(0,0,600,70);
jp2.setBounds(0,40,600,60);
jp2.setLayout(g);
//事件监听
jb1.addActionListener(new ActionListener() { //相加运算
@Override
public void actionPerformed(ActionEvent e) {
if(jt1.getText().isEmpty()||jt2.getText().isEmpty()) {} //判断文本是否为空,不为空进行相加
else {
String s1 = jt1.getText();
String s2 = jt2.getText();
double d1 = Double.parseDouble(s1);
double d2 = Double.parseDouble(s2);
double d3 = d1 + d2;
jt3.setText("" + d3);
}}});
jb2.addActionListener(new ActionListener() { //相减运算
@Override
public void actionPerformed(ActionEvent e) {
if(jt1.getText().isEmpty()||jt2.getText().isEmpty()) {} //判断文本是否为空,不为空进行相减
else {
String s1 = jt1.getText();
String s2 = jt2.getText();
double d1 = Double.parseDouble(s1);
double d2 = Double.parseDouble(s2);
double d3 = d1 - d2;
jt3.setText("" + d3);
}}});
jb3.addActionListener(new ActionListener() { //相乘运算
@Override
public void actionPerformed(ActionEvent e) {
if(jt1.getText().isEmpty()||jt2.getText().isEmpty()) {} //判断文本是否为空,不为空进行相乘
else {
String s1 = jt1.getText();
String s2 = jt2.getText();
double d1 = Double.parseDouble(s1);
double d2 = Double.parseDouble(s2);
double d3 = d1 * d2;
jt3.setText("" + d3);
}}});
jb4.addActionListener(new ActionListener() { //相除运算
@Override
public void actionPerformed(ActionEvent e) {
if(jt1.getText().isEmpty()||jt2.getText().isEmpty()) 判断文本是否为空,不为空进行相除
else {
String s1 = jt1.getText();
String s2 = jt2.getText();
double d1 = Double.parseDouble(s1);
double d2 = Double.parseDouble(s2);
if(d2==0) {jt3.setText("除数为零.");} //如果除数为零,结果框文本显示错误信息
else {
double d3 = d1 / d2;
jt3.setText("" + d3);
}}}});
jp.add(jl1);jp.add(jt1);jp.add(jl2);jp.add(jt2);jp.add(jl3);jp.add(jt3);//面板jp中加入标签和文本框
j.add(jp2); //框架加入面板jp2
j.add(jp);
jp2.add(jb1);jp2.add(jb2);jp2.add(jb3);jp2.add(jb4);//面板jp2中加入按钮
j.setResizable(false);
j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
j.setVisible(true);
}
}