• JAVA-复数计算器


    使用java组件做一个复数计算器

    首先,建三个类:一个组件类,一个类(将文本框与字符封装起来),一个复数类。下面是组件类的代码:

    package b;
    import java.awt.*;
    import java.awt.event.*;

    import javax.swing.*;
    import javax.swing.event.*;

    public class JComplex extends JFrame implements ActionListener{
    //设置组件
    public JComboBox<String> combox_add,combox_minus;
    private static String[] add={"+","-"};
    private static String[] minus={"+","-"};
    private JButton button_equal;
    //建面板类的对象
    ComJPanel x1=new ComJPanel();
    ComJPanel x2=new ComJPanel();
    ComJPanel x3=new ComJPanel();
    ComJPanel result=new ComJPanel();

    public JComplex()
    {
    super("复数运算器");
    this.setLayout(null);
    this.setSize(400,220);
    this.setLocationRelativeTo(null);
    //添加组件
    this.add(this.combox_add=new JComboBox<String>(JComplex.add));
    this.add(this.combox_minus=new JComboBox<String>(JComplex.minus));
    this.add(this.button_equal=new JButton("="));
    this.add(x1);
    this.add(x2);
    this.add(x3);
    this.add(result);
    //设置组件的距离和大小
    combox_add.setBounds(20, 70, 60, 30);
    combox_minus.setBounds(20, 110, 60, 30);
    button_equal.setBounds(20, 150, 60, 30);
    x1.setBounds(100, 5, 300, 50);
    x2.setBounds(100, 50, 300, 50);
    x3.setBounds(100, 100, 300, 50);
    result.setBounds(100, 150, 300, 50);
    //设置动作监听
    combox_add.addActionListener(this);
    combox_minus.addActionListener(this);
    button_equal.addActionListener(this);

    this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    this.setVisible(true);
    }
    public void actionPerformed(ActionEvent e)
    {//获取文本框的内容
    String s1=x1.text_real.getText();
    String s2=x1.text_i.getText();
    String s3=x2.text_real.getText();
    String s4=x2.text_i.getText();
    String s5=x3.text_real.getText();
    String s6=x3.text_i.getText();
    //建复数类的对象
    Complex c1=new Complex(s1,s2);
    Complex c2=new Complex(s3,s4);
    Complex c3=new Complex(s5,s6);
    //动作响应
    if(e.getSource().equals(combox_add))
    {
    if(combox_add.getSelectedItem().equals("+"))
    combox_add.setSelectedItem("+");
    else if(combox_add.getSelectedItem().equals("-"))
    combox_add.getSelectedItem().equals("-");
    }
    if(e.getSource().equals(combox_minus))
    {
    if(combox_minus.getSelectedItem().equals("+"))
    combox_minus.setSelectedItem("+");
    else if(combox_minus.getSelectedItem().equals("-"))
    combox_minus.setSelectedItem("-");
    }
    if(e.getSource().equals(button_equal))
    {
    if(combox_add.getSelectedItem().equals("+"))
    {
    c1.add(c2);
    }
    else if(combox_add.getSelectedItem().equals("-"))
    {
    c1.minus(c2);
    }
    if(combox_minus.getSelectedItem().equals("+"))
    {
    c1.add(c3);
    }
    else if(combox_minus.getSelectedItem().equals("-"))
    {
    c1.minus(c3);
    }
    }
    result.text_real.setText(Double.toString(c1.x));
    result.text_i.setText(Double.toString(c1.y));
    }
    public static void main(String []args)
    {
    new JComplex();
    }

    }
    class ComJPanel extends JPanel {
    private JLabel label_add,label_i;
    JTextField text_real,text_i;
    String s1,s2;

    public ComJPanel()
    {//面板类
    this.setLayout(null);
    this.add(this.text_real=new JTextField());
    this.add(this.label_add=new JLabel("+"));
    this.add(this.text_i=new JTextField());
    this.add(this.label_i=new JLabel("i"));

    text_real.setBounds(20,0,100,30);
    text_i.setBounds(150,0,100, 30);
    label_add.setBounds(130,0,20, 25);
    label_i.setBounds(260,0,20, 25);

    }

    }

    复数类就是简单的复数类,就不贴代码啦

  • 相关阅读:
    DFS+输出路线--poj2488--A Knight's Journey
    三:矩阵快速幂应用
    二:矩阵快速幂
    一:快速求幂
    动态规划空间复杂度的优化--滚动数组
    暴力--全排列+排列组合+组合(求子集)
    next_permutation 与 prev_permutation(全排列算法)
    BFS入门--POJ3278--抓羊
    java基础编程题
    计蒜客
  • 原文地址:https://www.cnblogs.com/qqqs/p/11945840.html
Copyright © 2020-2023  润新知