// The copyright of this program is reserved by 哲猫. /* Complex クラスの使い方 */ /* */ import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Ex061019a extends JApplet implements ActionListener{ JLabel lb1,lb2,lb3,lb4,lb5,lb6,lb7,lb8,lb9,lb10,lb11; JTextField tf1,tf2,tf3,tf4,tf5,tf6; JButton bt1,bt2,bt3,bt4,bt5; Complex z1,z2,z3,z4,z5,z6,z7; public void init(){ Container cp = getContentPane(); JPanel pl = new JPanel(); pl.setLayout(null); z1 = new Complex(); z2 = new Complex(); z3 = new Complex(); lb1 = new JLabel("z1="); lb1.setBounds(10,0,20,20); pl.add(lb1); tf1 = new JTextField(10); tf1.setBounds(30,0,50,20); tf1.setText("0.0"); pl.add(tf1); lb2 = new JLabel("+"); lb2.setBounds(80,0,10,20); pl.add(lb2); tf2 = new JTextField(10); tf2.setBounds(90,0,50,20); tf2.setText("0.0"); pl.add(tf2); lb3 = new JLabel("i"); lb3.setBounds(145,0,10,20); pl.add(lb3); lb4 = new JLabel("z2="); lb4.setBounds(10,30,20,20); pl.add(lb4); tf3 = new JTextField(10); tf3.setBounds(30,30,50,20); tf3.setText("0.0"); pl.add(tf3); lb5 = new JLabel("+"); lb5.setBounds(80,30,10,20); pl.add(lb5); tf4 = new JTextField(10); tf4.setBounds(90,30,50,20); tf4.setText("0.0"); pl.add(tf4); lb6 = new JLabel("i"); lb6.setBounds(145,30,10,20); pl.add(lb6); bt1 = new JButton("z1+z2"); bt1.setBounds(10,60,80,20); bt1.addActionListener(this); pl.add(bt1); lb7 = new JLabel("= "); lb7.setBounds(100,60,150,20); pl.add(lb7); bt2 = new JButton("z1−z2"); bt2.setBounds(10,90,80,20); bt2.addActionListener(this); pl.add(bt2); lb8 = new JLabel("= "); lb8.setBounds(100,90,150,20); pl.add(lb8); bt3 = new JButton("z1×z2"); bt3.setBounds(10,120,80,20); bt3.addActionListener(this); pl.add(bt3); lb9 = new JLabel("= "); lb9.setBounds(100,120,150,20); pl.add(lb9); bt4 = new JButton("z1÷z2"); bt4.setBounds(10,150,80,20); bt4.addActionListener(this); pl.add(bt4); lb10 = new JLabel("= "); lb10.setBounds(100,150,1500,20); pl.add(lb10); bt5 = new JButton("z1^z2"); bt5.setBounds(10,180,80,20); bt5.addActionListener(this); pl.add(bt5); lb11 = new JLabel("= "); lb11.setBounds(100,180,150,20); pl.add(lb11); cp.add(pl); } public void actionPerformed(ActionEvent event){ String s=new String("0.0"); double re,im; s=tf1.getText(); re=Double.valueOf(s).doubleValue(); s=tf2.getText(); im=Double.valueOf(s).doubleValue(); z1.set(re,im); s=tf3.getText(); re=Double.valueOf(s).doubleValue(); s=tf4.getText(); im=Double.valueOf(s).doubleValue(); z2.set(re,im); if(event.getSource()==bt1){ z3=z1.add(z2); lb7.setText(display(z3)); } if(event.getSource()==bt2){ z3=z1.sub(z2); lb8.setText(display(z3)); } if(event.getSource()==bt3){ z3=z1.mul(z2); lb9.setText(display(z3)); } if(event.getSource()==bt4){ z3=z1.div(z2); lb10.setText(display(z3)); } if(event.getSource()==bt5){ z3=z1.pow(z2); lb11.setText(display(z3)); } } public String display(Complex z){ String str = new String(); if(z.image()>=0) str="= "+Math.floor(z.real()*10000+0.5)/10000+" + "+Math.floor(z.image()*10000+.5)/10000+" i"; else str="= "+Math.floor(z.real()*10000+0.5)/10000 + Math.floor(z.image()*10000+.5)/10000+" i"; return(str); } }