packagecomplex;importjava.awt.EventQueue;importjavax.swing.JFrame;importjavax.swing.JPanel;importjava.awt.BorderLayout;importjava.awt.GridLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.JLabel;importjavax.swing.JTextField;importjavax.swing.SwingConstants;importjavax.swing.border.EmptyBorder;importjavax.swing.JButton;importjava.awt.Font;public class Complex implementsActionListener {
String s,s1,s2,s3,s4;//s为运算符号,s1,s3为两个虚数的实部,s2,s4为两个虚数的虚部
double a,b,c,d,ans1,ans2; //对应的字符串转化为数值后:a,c为两个虚数的实部,b,d为两个虚数的虚部//ans1,ans2为计算结果
privateJFrame frame;privateJTextField textField_1;privateJTextField textField_2;privateJTextField textField;privateJTextField textField_3;privateJTextField textField_4;privateJTextField textField_5;privateJTextField textField_6;privateJButton button;public static voidmain(String[] args) {
EventQueue.invokeLater(newRunnable() {public voidrun() {try{
Complex window= new Complex(); //插件自动生成对象,并设置可见性为可见
window.frame.setVisible(true);
}catch(Exception e) {
e.printStackTrace();
}
}
});
}/*GUi插件自动生成*/
publicComplex() {
frame= newJFrame();
frame.setBounds(100, 100, 709, 377);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(new GridLayout(1, 1, 0, 0));
JPanel panel= newJPanel();
panel.setBorder(new EmptyBorder(20, 20, 20, 20));
frame.getContentPane().add(panel);
panel.setLayout(new GridLayout(4, 5, 20, 20));/*public GridLayout(x,y,hgap,vgap) x,y为表格布局的行和列,hgap和vgap为表格元素间的间距*/JLabel label= new JLabel("\u590D\u65701\uFF1A");
label.setFont(new Font("宋体", Font.BOLD, 19));
label.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(label);
textField_1= newJTextField();
textField_1.setFont(new Font("宋体", Font.BOLD, 18));
textField_1.setHorizontalAlignment(SwingConstants.CENTER);
textField_1.setColumns(10);
panel.add(textField_1);
JLabel label_1= new JLabel("+");
label_1.setFont(new Font("宋体", Font.BOLD, 19));
label_1.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(label_1);
textField_2= newJTextField();
textField_2.setFont(new Font("宋体", Font.BOLD, 18));
textField_2.setHorizontalAlignment(SwingConstants.CENTER);
textField_2.setColumns(10);
panel.add(textField_2);
JLabel label_2= new JLabel("i");
label_2.setFont(new Font("宋体", Font.BOLD, 19));
label_2.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(label_2);
JLabel label_3= new JLabel("\u8FD0\u7B97\u7B26");
label_3.setFont(new Font("宋体", Font.BOLD, 19));
label_3.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(label_3);
JLabel label_4= new JLabel("");
label_4.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(label_4);
textField= newJTextField();
textField.setFont(new Font("宋体", Font.BOLD, 19));
textField.setHorizontalAlignment(SwingConstants.CENTER);
textField.setColumns(10);
panel.add(textField);/** TextArea与TextField的最基本区别
* TextArea可以输入多行文本,
* TextField只能输入单行文本。*/JLabel label_5= new JLabel("");
label_5.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(label_5);
JLabel label_6= new JLabel("");
panel.add(label_6);
JLabel label_7= new JLabel("\u590D\u65702\r\n");
label_7.setFont(new Font("宋体", Font.BOLD, 19));
label_7.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(label_7);
textField_3= newJTextField();
textField_3.setFont(new Font("宋体", Font.BOLD, 18));
textField_3.setHorizontalAlignment(SwingConstants.CENTER);
textField_3.setColumns(10);
panel.add(textField_3);
JLabel label_8= new JLabel("+");
label_8.setFont(new Font("宋体", Font.BOLD, 19));
label_8.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(label_8);
textField_4= newJTextField();
textField_4.setFont(new Font("宋体", Font.BOLD, 18));
textField_4.setHorizontalAlignment(SwingConstants.CENTER);
textField_4.setColumns(10);
panel.add(textField_4);
JLabel label_9= new JLabel("i");
label_9.setFont(new Font("宋体", Font.BOLD, 18));
label_9.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(label_9);
button= new JButton("=");
button.setFont(new Font("宋体", Font.BOLD, 20));
panel.add(button);
button.addActionListener(this);
textField_5= newJTextField();
textField_5.setFont(new Font("宋体", Font.BOLD, 18));
textField_5.setHorizontalAlignment(SwingConstants.CENTER);
textField_5.setColumns(10);
panel.add(textField_5);
JLabel label_11= new JLabel("+");
label_11.setFont(new Font("宋体", Font.BOLD, 19));
label_11.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(label_11);
textField_6= newJTextField();
textField_6.setFont(new Font("宋体", Font.BOLD, 18));
textField_6.setHorizontalAlignment(SwingConstants.CENTER);
textField_6.setColumns(10);
panel.add(textField_6);
JLabel label_12= new JLabel("i");
label_12.setFont(new Font("宋体", Font.BOLD, 19));
label_12.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(label_12);
}/*点击按钮事件*/
public voidactionPerformed(ActionEvent e) {//得到输入框的内容
s1 =textField_1.getText();
s2=textField_2.getText();
s3=textField_3.getText();
s4=textField_4.getText();
s=textField.getText();//字符串转化为数值
a =Double.parseDouble(s1);
b=Double.parseDouble(s2);
c=Double.parseDouble(s3);
d=Double.parseDouble(s4);//选择运算类型:加,减,乘
switch(s) {case "+":
ans1= a +b;
ans2= c +d;break;case "-":
ans1= a -b;
ans2= c -d;break;case "*":
ans1= a*c - b*d;
ans2= a*d + b*c;break;
}//设置文本框内容
textField_5.setText(ans1+"");
textField_6.setText(ans2+"");
}
}