Java程序设计
大作业课程报告
实现加减乘除功能:
功能模块及详细说明
程序模块流程
import javax.swing.*;
import javax.swing.JFrame;
import java.awt.*;
import java.awt.event.*;
public class Main {
JFrame step3 = new JFrame("图形化计算器"); //显示界面标题
JButton button1 = new JButton("+"); //创建一个按钮
JButton button2 = new JButton("-"); //创建一个按钮
JButton button3 = new JButton("全部清零"); //创建一个按钮
JButton button4 = new JButton("*"); //创建一个按钮
JButton button5 = new JButton("/"); //创建一个按钮
JLabel text1 = new JLabel("运算数一"); //创建一个文本
JLabel text2 = new JLabel("运算数二"); //创建一个文本
JLabel text3 = new JLabel("运算结果"); //创建一个文本
JLabel text = new JLabel("图形化计算器"); //创建一个文本
JTextField jet1 = new JTextField(30); //创建一个输入框
JTextField jet2 = new JTextField(30); //创建一个输入框
JTextField jet3 = new JTextField(30); //创建一个输入框
public Main () {
step3.setLayout(null); //清空布局管理器
step3.setSize(300,350); //设置系统框的大小
button1.setSize(60,30); //设置按钮的大小
button2.setSize(60,30); //设置按钮的大小
button4.setSize(60,30); //设置按钮的大小
button5.setSize(60,30); //设置按钮的大小
button3.setSize(100,30); //设置按钮的大小
button1.setLocation(70,200); //设置按钮的位置(相对与系统框的左上角)
button2.setLocation(150,200); //设置按钮的位置(相对与系统框的左上角)
button4.setLocation(70,250); //设置按钮的位置(相对与系统框的左上角)
button5.setLocation(150,250); //设置按钮的位置(相对与系统框的左上角)
button3.setLocation(85,280); //设置按钮的位置(相对与系统框的左上角)
button1.addActionListener(new event1(jet1,jet2,jet3)); //添加事件监听器(为后面创建响应做准备)
button2.addActionListener(new event2(jet1,jet2,jet3)); //添加事件监听器(为后面创建响应做准备)
button4.addActionListener(new event4(jet1,jet2,jet3)); //添加事件监听器(为后面创建响应做准备)
button5.addActionListener(new event5(jet1,jet2,jet3)); //添加事件监听器(为后面创建响应做准备)
button3.addActionListener(new event3(jet1,jet2,jet3)); //添加事件监听器(为后面创建响应做准备)
text1.setSize(70,30);
text2.setSize(70,30);
text3.setSize(70,30);
text.setSize(160,30);
text.setFont(new Font("宋体",Font.PLAIN,20)); //设置字体格式
text1.setLocation(30,50);
text2.setLocation(30,100);
text3.setLocation(30,150);
text.setLocation(85,10);
jet1.setSize(90,30);
jet2.setSize(90,30);
jet3.setSize(90,30);
jet1.setLocation(150,50);
jet2.setLocation(150,100);
jet3.setLocation(150,150);
jet3.setEditable(false);
step3.add(jet1);step3.add(jet2);step3.add(jet3); //将以上内容添加到step3中
step3.add(text1);step3.add(text2);step3.add(text3);step3.add(text); //将以上内容添加到step3中
step3.add(button1);step3.add(button2);step3.add(button3); step3.add(button4);step3.add(button5); //将以上内容添加到step3中
step3.setResizable(false); //表示不可以由用户自定义窗口大小
// step3.setLocation(600,100);
step3.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置默认的关闭操作,”在关闭动作时退出“
step3.setVisible(true); //将其改为可见
}
/*
*此函数作用为:判断传入数据是否为浮点数/整数
*/
public boolean num(String n)
{
int count=0;
char ch =n.charAt(0);
if (ch == '-' || ch >= '0' && ch <= '9')
{
for (int i = 1; i < n.length(); i++)
{
ch = n.charAt(i);
if (Character.isDigit(ch) && ch != '.')
return false;
if (ch == '.')
count++;
}
return count < 2 && ch != '.';
}
return false;
}
/*
*次函数作用为:两数相加,并将结果输出到jet3中
*/
class event1 implements ActionListener{
JTextField num1=null;
JTextField num2=null;
JTextField num3=null;
public event1(JTextField jet1,JTextField jet2,JTextField jet3)
{
num1=jet1;
num2=jet2;
num3=jet3;
}
public void actionPerformed(ActionEvent actionEvent) {
String st1=num1.getText();
String st2=num2.getText();
if (st1.equals(" ") || st2.equals(" "))
JOptionPane.showMessageDialog(null,"请输入数字");
else if(!num(st1) || !num(st2))
JOptionPane.showMessageDialog(null,"请输入数字");
else
{
double a = Double.parseDouble(st1);
double b = Double.parseDouble(st2);
num3.setText(Double.toString(a+b));
}
}
}
/*
*此函数作用为:两数相减,并将结果输入到jet3中
*/
class event2 implements ActionListener{
JTextField num1=null;
JTextField num2=null;
JTextField num3=null;
public event2(JTextField jet1,JTextField jet2,JTextField jet3)
{
num1=jet1;
num2=jet2;
num3=jet3;
}
public void actionPerformed(ActionEvent actionEvent) {
String st1=num1.getText();
String st2=num2.getText();
if (st1.equals(" ") || st2.equals(" "))
JOptionPane.showMessageDialog(null,"请输入数字");
else if(!num(st1) || !num(st2))
JOptionPane.showMessageDialog(null,"请输入数字");
else
{
double a = Double.parseDouble(st1);
double b = Double.parseDouble(st2);
jet3.setText(Double.toString(a-b));
}
}
}
/*
*此函数作用为:两数相乘,并将结果输入到jet3中
*/
class event4 implements ActionListener{
JTextField num1=null;
JTextField num2=null;
JTextField num3=null;
public event4(JTextField jet1,JTextField jet2,JTextField jet3)
{
num1=jet1;
num2=jet2;
num3=jet3;
}
public void actionPerformed(ActionEvent actionEvent) {
String st1=num1.getText();
String st2=num2.getText();
if (st1.equals(" ") || st2.equals(" "))
JOptionPane.showMessageDialog(null,"请输入数字");
else if(!num(st1) || !num(st2))
JOptionPane.showMessageDialog(null,"请输入数字");
else
{
double a = Double.parseDouble(st1);
double b = Double.parseDouble(st2);
jet3.setText(Double.toString(a*b));
}
}
}
/*
*此函数作用为:两数相除,并将结果输入到jet3中
*/
class event5 implements ActionListener{
JTextField num1=null;
JTextField num2=null;
JTextField num3=null;
public event5(JTextField jet1,JTextField jet2,JTextField jet3)
{
num1=jet1;
num2=jet2;
num3=jet3;
}
public void actionPerformed(ActionEvent actionEvent) {
String st1=num1.getText();
String st2=num2.getText();
if (st1.equals(" ") || st2.equals(" "))
JOptionPane.showMessageDialog(null,"请输入数字");
else if(!num(st1) || !num(st2))
JOptionPane.showMessageDialog(null,"请输入数字");
else if(st2.equals("0"))
JOptionPane.showMessageDialog(null,"除数不能为0!");
else
{
double a = Double.parseDouble(st1);
double b = Double.parseDouble(st2);
jet3.setText(Double.toString(a/b));
}
}
}
/*
*此函数作用为:将jet1-3的数值清空
*/
class event3 implements ActionListener {
JTextField num1 = null;
JTextField num2 = null;
JTextField num3 = null;
public event3(JTextField jet1, JTextField jet2, JTextField jet3) {
num1 = jet1;
num2 = jet2;
num3 = jet3;
}
public void actionPerformed(ActionEvent actionEvent) {
num1.setText("");
num2.setText("");
num3.setText("");
}
}
public static void main(String[] args) {
new Main();//创建对象
}
}