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);

}

}

復數類就是簡單的復數類,就不貼代碼啦


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM