需求分析
Java
编程实现如下图所示的一个可对复数进行计算的界面Application
代码实现
实验共有两个文件,如下所示:
- 设计并实现出程序界面
- 添加功能实现
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;
}
}
实验总结
- 加强对类定义以及使用的认识
- 学会合理对界面程序进行布局
- 正确实现实验所要求的的功能