实现功能

Posted 1314521-ww

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现功能相关的知识,希望对你有一定的参考价值。

源代码:

import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class CaculatorDemo extends JFrame

private static final long serialVersionUID = 1L;

private StringBuilder sBuilder = new StringBuilder();
private Double a;//中间变量用于存储输入的第一个数
private Double b;//中间变量,用于存储输入的第二个数
private Double double1;//用于接收计算结果
private Integer i;// i用于表示加减乘除


public CaculatorDemo()
this.setTitle("计算器");
this.setSize(318, 457);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


JPanel panel = new JPanel();
this.getContentPane().add(panel);
panel.setLayout(null);


// 定义一个label用于显示输入数据和计算结果
final JLabel label = new JLabel();
label.setBounds(0, 0, 300, 50);
label.setFont(new Font("dialog", 1, 30));
label.setOpaque(true);// 由于jlabel默认透明,直接设置背景色无效,需要先将不透明设置为true
label.setBackground(Color.white);
panel.add(label);


// 定义按钮组件
JButton button1 = new JButton("1");
JButton button2 = new JButton("2");
JButton button3 = new JButton("3");
JButton button4 = new JButton("4");
JButton button5 = new JButton("5");
JButton button6 = new JButton("6");
JButton button7 = new JButton("7");
JButton button8 = new JButton("8");
JButton button9 = new JButton("9");
JButton button0 = new JButton("0");
JButton buttonadd = new JButton("+");// 加
JButton buttonminus = new JButton("-");// 减
JButton buttontime = new JButton("×");// 乘
JButton buttondivid = new JButton("÷");// 除
JButton buttonequal = new JButton("=");// 等于
JButton buttondecimal = new JButton(".");// 小数点
JButton buttondelet = new JButton("←");// 删除
JButton buttonclear = new JButton("C");// 清除


// 定义按钮组件位置
button0.setBounds(0, 50, 100, 60);
button0.setFont(new Font("dialog", 1, 30));
panel.add(button0);
button1.setBounds(100, 50, 100, 60);
button1.setFont(new Font("dialog", 1, 30));
panel.add(button1);
button2.setBounds(200, 50, 100, 60);
button2.setFont(new Font("dialog", 1, 30));
panel.add(button2);
button3.setBounds(0, 110, 100, 60);
button3.setFont(new Font("dialog", 1, 30));
panel.add(button3);
button4.setBounds(100, 110, 100, 60);
button4.setFont(new Font("dialog", 1, 30));
panel.add(button4);
button5.setBounds(200, 110, 100, 60);
button5.setFont(new Font("dialog", 1, 30));
panel.add(button5);
button6.setBounds(0, 170, 100, 60);
button6.setFont(new Font("dialog", 1, 30));
panel.add(button6);
button7.setBounds(100, 170, 100, 60);
button7.setFont(new Font("dialog", 1, 30));
panel.add(button7);
button8.setBounds(200, 170, 100, 60);
button8.setFont(new Font("dialog", 1, 30));
panel.add(button8);
button9.setBounds(0, 230, 100, 60);
button9.setFont(new Font("dialog", 1, 30));
panel.add(button9);
buttonadd.setBounds(100, 230, 100, 60);
buttonadd.setFont(new Font("dialog", 1, 30));
panel.add(buttonadd);//加
buttonminus.setBounds(200, 230, 100, 60);
buttonminus.setFont(new Font("dialog", 1, 30));
panel.add(buttonminus);//减
buttontime.setBounds(0, 290, 100, 60);
buttontime.setFont(new Font("dialog", 1, 30));
panel.add(buttontime);//乘
buttondivid.setBounds(100, 290, 100, 60);
buttondivid.setFont(new Font("dialog", 1, 30));
panel.add(buttondivid);//除
buttonequal.setBounds(200, 290, 100, 60);
buttonequal.setFont(new Font("dialog", 1, 30));
panel.add(buttonequal);//等于
buttondecimal.setBounds(0, 350, 100, 60);
buttondecimal.setFont(new Font("dialog", 1, 30));
panel.add(buttondecimal);//小数点
buttonclear.setBounds(100, 350, 100, 60);
buttonclear.setFont(new Font("dialog", 1, 30));
panel.add(buttonclear);//复位
buttondelet.setBounds(200, 350, 100, 60);
buttondelet.setFont(new Font("dialog", 1, 30));
panel.add(buttondelet);//删除


// 给各个按钮设置动作监听器
// 输入数值操作0~9
button0.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
sBuilder.append("0");
label.setText(sBuilder.toString());

);
button1.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
sBuilder.append("1");
label.setText(sBuilder.toString());

);
button2.addActionListener(new ActionListener()


@Override
public void actionPerformed(ActionEvent e)
sBuilder.append("2");
label.setText(sBuilder.toString());

);
button3.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
sBuilder.append("3");
label.setText(sBuilder.toString());

);
button4.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
sBuilder.append("4");
label.setText(sBuilder.toString());

);
button5.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
sBuilder.append("5");
label.setText(sBuilder.toString());

);
button6.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
sBuilder.append("6");
label.setText(sBuilder.toString());

);
button7.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
sBuilder.append("7");
label.setText(sBuilder.toString());

);
button8.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
sBuilder.append("8");
label.setText(sBuilder.toString());

);
button9.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
sBuilder.append("9");
label.setText(sBuilder.toString());

);


// 输入运算符操作,需要先判断a是否为0.0
buttonadd.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
a = Double.parseDouble(sBuilder.toString());
sBuilder = new StringBuilder();
label.setText("+");
i = 0;

);
buttonminus.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
a = Double.parseDouble(sBuilder.toString());
sBuilder = new StringBuilder();
label.setText("-");
i = 1;

);
buttontime.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
a = Double.parseDouble(sBuilder.toString());
sBuilder = new StringBuilder();
label.setText("×");
i = 2;

);
buttondivid.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
a = Double.parseDouble(sBuilder.toString());
sBuilder = new StringBuilder();
label.setText("÷");
i = 3;

);
buttonequal.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
// 该判断中间变量是否为空
if (!"".equals(sBuilder.toString()) && (!(a == 0.0)))
b = Double.parseDouble(sBuilder.toString());
if (i == 0)
double1 = a + b;
label.setText(double1.toString());
sBuilder = new StringBuilder();
sBuilder.append(double1);
else if (i == 1)
double1 = a - b;
label.setText(double1.toString());
sBuilder = new StringBuilder();
sBuilder.append(double1);
else if (i == 2)
double1 = a * b;
label.setText(double1.toString());
sBuilder = new StringBuilder();
sBuilder.append(double1);
else if (i == 3)
double1 = a / b;
label.setText(double1.toString());
sBuilder = new StringBuilder();
sBuilder.append(double1);
else
label.setText(sBuilder.toString());



);
buttondecimal.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
sBuilder.append(".");
label.setText(sBuilder.toString());

);
buttonclear.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
sBuilder = new StringBuilder();
label.setText("");

);
buttondelet.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
if (!"".equals(sBuilder.toString()))
sBuilder.deleteCharAt(sBuilder.length() - 1);
label.setText(sBuilder.toString());


);


this.setVisible(true);

public static void main(String[] args)
new CaculatorDemo();

技术图片

以上是关于实现功能的主要内容,如果未能解决你的问题,请参考以下文章

Android实现拨号功能

如何使用php实现图片批量上传功能

Flask博客实战 - 实现登录注册功能

VUE腾讯地图web地图选点功能实现

代码质量第 5 层 - 只是实现了功能

怎么在android实现退出功能