复数计算界面小程序-Java

109 阅读2分钟

需求分析

Java编程实现如下图所示的一个可对复数进行计算的界面Application
在这里插入图片描述

代码实现

实验共有两个文件,如下所示:
在这里插入图片描述

  1. 设计并实现出程序界面
  2. 添加功能实现

ComplexAPP

import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Label;
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;
import javax.swing.JTextField;

import com.sun.jdi.event.EventQueue;

public class ComplexAPP{
	private JFrame frame;
	private JTextField R1;
	private JTextField V1;
	private JTextField operator;
	private JTextField R2;
	private JTextField V2;
	private JTextField R3;
	private JTextField V3;

	public ComplexAPP() {
 		frame=new JFrame();
 		frame.setBounds(100,100,450,300);//设置左上角坐标及宽高
 		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭方式
 		frame.getContentPane().setLayout(null);//设置布局
 		
 		JLabel fushu1_Label=new JLabel("复数1");
 		fushu1_Label.setBounds(14,31,72,18);
 		frame.getContentPane().add(fushu1_Label);
 		
 		JLabel oper_Label=new JLabel("运算符");
 		oper_Label.setBounds(14,87,72,25);
 		frame.getContentPane().add(oper_Label);
 		
 		JLabel fushu3_Lable=new JLabel("复数2");
 		fushu3_Lable.setBounds(14,149,72,18);
 		frame.getContentPane().add(fushu3_Lable);
 		
 		JButton equalBtn=new JButton("=");
 		equalBtn.setBounds(14,198,64,27);
 		frame.getContentPane().add(equalBtn);
 		equalBtn.addActionListener(new ActionListener() {//添加点击事件
			
			@Override
			public void actionPerformed(ActionEvent e) {
//				R1转换为double型数据,V1转换为Double型数据
				Complex c1=new Complex(Double.parseDouble(R1.getText()), Double.valueOf(V1.getText()));
				Complex c2=new Complex(Double.parseDouble(R2.getText()), Double.valueOf(V2.getText()));
				Complex resultComplex=null;
				if(operator.getText().equals("+")) {
					resultComplex=c1.Plus(c1, c2);
				}else if(operator.getText().equals("-")) {
					resultComplex=c1.Minus(c1, c2);
				}else if(operator.getText().equals("*")) {
					resultComplex=c1.Multiply(c1, c2);
				}
				R3.setText(String.valueOf(resultComplex.getReal_part()));
				V3.setText(String.valueOf(resultComplex.getVitual_part()));
			}
		});
// 		单行文本框
 		R1=new JTextField();
 		R1.setBounds(100,28,86,24);
 		frame.getContentPane().add(R1);
 		R1.setColumns(10);
 		
 		JLabel plus1_Label=new JLabel("+");
 		plus1_Label.setBounds(214,31,8,18);
 		frame.getContentPane().add(plus1_Label);
 		
 		JLabel i_Label=new JLabel("i");
 		i_Label.setBounds(346,31,8,18);
 		frame.getContentPane().add(i_Label);
 		
 		V1=new JTextField();
 		V1.setBounds(246,28,86,24);
 		frame.getContentPane().add(V1);
 		V1.setColumns(10);
 		
 		JLabel i1_Label = new JLabel("i");
		i1_Label.setBounds(346, 31, 28, 18);
		frame.getContentPane().add(i1_Label);
		
		operator = new JTextField();
		operator.setBounds(180, 87, 86, 24);
		frame.getContentPane().add(operator);
		operator.setColumns(10);
		
		R2 = new JTextField();
		R2.setBounds(100, 146, 86, 24);
		frame.getContentPane().add(R2);
		R2.setColumns(10);
	
		
		JLabel plus2_Label = new JLabel("+");
		plus2_Label.setBounds(211, 149, 35, 18);
		frame.getContentPane().add(plus2_Label);
		
		V2 = new JTextField();
		V2.setBounds(246, 146, 86, 24);
		frame.getContentPane().add(V2);
		V2.setColumns(10);
		
		JLabel i2_Label = new JLabel("i");
		i2_Label.setBounds(346, 149, 72, 18);
		frame.getContentPane().add(i2_Label);
		
		R3 = new JTextField();
		R3.setEditable(false);
		R3.setBounds(100, 199, 86, 24);
		frame.getContentPane().add(R3);
		R3.setColumns(10);
		
		JLabel plus3_Label = new JLabel("+");
		plus3_Label.setBounds(211, 202, 35, 18);
		frame.getContentPane().add(plus3_Label);

		V3 = new JTextField();
		V3.setEditable(false);
		V3.setBounds(246, 199, 86, 24);
		frame.getContentPane().add(V3);
		V3.setColumns(10);
		
		JLabel lblI_3 = new JLabel("i");
		lblI_3.setBounds(346, 202, 72, 18);
		frame.getContentPane().add(lblI_3);

 		frame.setVisible(true);
	}
	public static void main(String[] args) {
		new ComplexAPP();
	}
}

Complex

public class Complex {
	private double real_part;
	private double vitual_part;
//	得到实数部分
	public double getReal_part() {
		return real_part;
	}

	public void setReal_part(double real_part) {
		this.real_part = real_part;
	}
//得到虚数部分
	public double getVitual_part() {
		return vitual_part;
	}

	public void setVitual_part(double vitual_part) {
		this.vitual_part = vitual_part;
	}

	public Complex(double real_part,double vitual_part) {
		// TODO Auto-generated constructor stub
		super();
		this.real_part=real_part;
		this.vitual_part=vitual_part;
	}

	public Complex Plus(Complex c1, Complex c2) {
		// TODO Auto-generated method stub
		Complex resComplex=new Complex(0, 0);
		resComplex.real_part=c1.real_part+c2.real_part;
		resComplex.vitual_part=c1.vitual_part+c2.vitual_part;
		return resComplex;
	}

	public Complex Minus(Complex c1, Complex c2) {
		Complex resComplex=new Complex(0, 0);
		resComplex.real_part=c1.real_part-c2.real_part;
		resComplex.vitual_part=c1.vitual_part-c2.vitual_part;
		return resComplex;
	}

	public Complex Multiply(Complex c1, Complex c2) {
		Complex resComplex=new Complex(0, 0);
		resComplex.real_part=c1.real_part*c2.real_part-c1.vitual_part*c2.vitual_part;
		resComplex.vitual_part=c1.real_part*c2.vitual_part+c1.vitual_part* c2.real_part;
		return resComplex;
	}	
}

实验总结

  • 加强对类定义以及使用的认识
  • 学会合理对界面程序进行布局
  • 正确实现实验所要求的的功能