import java.awt.Color; |
import java.awt.Font; |
import java.awt.GridLayout; |
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 javax.swing.WindowConstants; |
import javax.swing.border.LineBorder; |
class Normal{ |
double i,j; |
public Normal( double num1, double num2){ |
i=num1; |
j=num2; |
} |
public double puls(){ |
return i+j; |
} |
public double subtract(){ |
return i-j; |
} |
public double multiply(){ |
return i*j; |
} |
public double divide(){ |
return i/j; |
} |
public double surpuls(){ |
return i%j; |
} |
} |
class scientific extends Normal{ |
public scientific( int num1, int num2) { |
super (num1, num2); |
} |
} |
public class calc extends JFrame{ |
public static void main(String[] args) { |
viewNormal VN= new viewNormal( "normal" ); |
} |
} |
class viewNormal extends JFrame implements ActionListener{ |
JPanel jp1 = new JPanel( new GridLayout( 4 , 3 , 5 , 5 )); |
JPanel jp2 = new JPanel( new GridLayout( 5 , 1 , 5 , 5 )); |
JLabel jl; |
JButton[] jb; |
JButton jbs,jbo,jba,jbb,jbc,jby; |
StringBuffer sb = new StringBuffer(); |
Normal normal; |
int dot= 0 ; |
double fnum= 0 ; |
double lnum= 0 ; |
double result; |
String sign= null ; |
public viewNormal(String title){ |
setTitle(title); |
setLayout( null ); |
setVisible( true ); |
setBounds( 200 , 200 , 305 , 350 ); |
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); |
jb= new JButton[ 12 ]; |
for ( int i= 0 ;i< 9 ;i++){ |
jb[i]= new JButton( "" +(i+ 1 )); |
jp1.add(jb[i]); |
jb[i].addActionListener( this ); |
} |
jb[ 9 ]= new JButton( "." ); |
jb[ 10 ]= new JButton( "0" ); |
jb[ 11 ]= new JButton( "=" ); |
jb[ 9 ].addActionListener( this ); |
jb[ 10 ].addActionListener( this ); |
jb[ 11 ].addActionListener( this ); |
jp1.add(jb[ 9 ]); |
jp1.add(jb[ 10 ]); |
jp1.add(jb[ 11 ]); |
jp1.setBounds( 10 , 100 , 200 , 200 ); |
jbs= new JButton( "+" );jbo= new JButton( "-" );jba= new JButton( "*" ); |
jbb= new JButton( "/" );jby= new JButton( "%" );jbc= new JButton( "C" ); |
jbs.addActionListener( this );jbo.addActionListener( this );jba.addActionListener( this ); |
jbb.addActionListener( this );jby.addActionListener( this );jbc.addActionListener( this ); |
//jp2.add(jby); |
jp2.add(jbs);jp2.add(jbo);jp2.add(jba);jp2.add(jbb);jp2.add(jbc); |
jp2.setBounds( 215 , 100 , 70 , 200 ); |
jl= new JLabel( "0" ,JLabel.RIGHT); |
jl.setFont( new Font( "Batang" ,Font.BOLD, 20 )); |
jl.setBorder( new LineBorder(Color.black, 2 )); |
jl.setBackground(Color.white); |
jl.setBounds( 10 , 40 , 275 , 50 ); |
jl.setOpaque( true ); |
add(jl); |
add(jp1); |
add(jp2); |
} |
//+ |
public void sum(){ |
lnum=Double.parseDouble(sb.toString()); |
normal= new Normal(fnum,lnum); |
fnum=normal.puls(); |
result=fnum; |
} |
//- |
private void sub() { |
System.out.println(sb.toString()); |
lnum=Double.parseDouble(sb.toString()); |
normal= new Normal(fnum,lnum); |
fnum=normal.subtract(); |
result=fnum; |
} |
//* |
private void mul() { |
lnum=Double.parseDouble(sb.toString()); |
normal= new Normal(fnum,lnum); |
fnum=normal.multiply(); |
result=fnum; |
} |
// / |
private void div() { |
lnum=Double.parseDouble(sb.toString()); |
normal= new Normal(fnum,lnum); |
fnum=normal.divide(); |
result=fnum; |
} |
//% |
private void sur() { |
lnum=Double.parseDouble(sb.toString()); |
normal= new Normal(fnum,lnum); |
fnum=normal.surpuls(); |
result=fnum; |
} |
// = |
private void same(){ |
if (sign.equals( "+" )){ |
sum(); |
} |
if (sign.equals( "-" )){ |
sub(); |
} |
if (sign.equals( "*" )){ |
mul(); |
} |
if (sign.equals( "/" )){ |
div(); |
} |
if (sign.equals( "%" )){ |
sur(); |
} |
} |
//result |
public void Result(){ |
if (result% 1 != 0 ) |
jl.setText( "" +result); |
else |
{ |
int i=( int )result; |
jl.setText( "" +i); |
} |
} |
@Override |
public void actionPerformed(ActionEvent e) { |
//System.out.println(sb.toString()); |
// 1~9 |
for ( int i= 0 ;i< 9 ;i++){ |
if (e.getSource()==jb[i]&&!sb.toString().equals( "0" )){ |
sb.append(jb[i].getText()); |
jl.setText(sb.toString()); |
} |
else if (e.getSource()==jb[i]&&sb.toString().equals( "0" )){ |
int d=sb.length(); |
sb.delete( 0 , d); |
sb.append(jb[i].getText()); |
jl.setText(sb.toString()); |
} |
} |
// 0 |
if (e.getSource()==jb[ 10 ]&&!sb.toString().equals( "0" )){ |
sb.append(jb[ 10 ].getText()); |
jl.setText(sb.toString()); |
} |
// . |
if (e.getSource()==jb[ 9 ]&&dot== 0 &&!sb.toString().equals( "" )){ |
dot++; |
sb.append(jb[ 9 ].getText()); |
jl.setText(sb.toString()); |
} |
// = |
if (e.getSource()==jb[ 11 ]&&!sb.toString().equals( "" )){ |
same(); |
Result(); |
int d=sb.length(); |
sb.delete( 0 , d); |
dot= 0 ; |
} |
// + |
if (e.getSource()==jbs&&!sb.toString().equals( "" )){ |
if (sign!= "+" &&sign!= null ) |
same(); |
else |
sum(); |
sign = "+" ; |
Result(); |
int d=sb.length(); |
sb.delete( 0 , d); |
dot= 0 ; |
} |
//- |
if (e.getSource()==jbo&&!sb.toString().equals( "" )){ |
if (fnum== 0 ) |
fnum= 2 *Double.parseDouble(sb.toString()); |
if (sign!= "-" &&sign!= null ) |
same(); |
else |
sub(); |
sign = "-" ; |
Result(); |
int d=sb.length(); |
sb.delete( 0 , d); |
dot= 0 ; |
} |
//* |
if (e.getSource()==jba&&!sb.toString().equals( "" )){ |
if (fnum== 0 ) |
fnum= 1 ; |
if (sign!= "*" &&sign!= null ) |
same(); |
else |
mul(); |
sign = "*" ; |
Result(); |
int d=sb.length(); |
sb.delete( 0 , d); |
dot= 0 ; |
} |
// / |
if (e.getSource()==jbb&&!sb.toString().equals( "" )){ |
if (fnum== 0 ) |
fnum=Math.pow(Double.parseDouble(sb.toString()), 2 ); |
if (sign!= "/" &&sign!= null ) |
same(); |
else |
div(); |
sign = "/" ; |
Result(); |
int d=sb.length(); |
sb.delete( 0 , d); |
dot= 0 ; |
} |
//% |
// if(e.getSource()==jby&&!sb.toString().equals("")){ |
// if(fnum==0){ |
// fnum=Double.parseDouble(sb.toString()); |
// result=fnum; |
// } |
// else { |
// if(sign!="%"&&sign!=null) |
// same(); |
// else{ |
// lnum=Double.parseDouble(sb.toString()); |
// normal=new Normal(fnum,lnum); |
// fnum=normal.surpuls(); |
// result=fnum; |
// } |
// } |
// sign ="%"; |
// Result(); |
// int d=sb.length(); |
// sb.delete(0, d); |
// dot=0; |
// } |
//clear |
if (e.getSource()==jbc){ |
int d=sb.length(); |
sb.delete( 0 , d); |
jl.setText( "0" ); |
dot= 0 ; |
fnum= 0 ; |
lnum= 0 ; |
sign= null ; |
} |
} |
} |
class viewScientific extends viewNormal{ |
public viewScientific(String title){ |
super (title); |
setBounds( 200 , 200 , 800 , 500 ); |
} |
} |
by: 发表于:2017-06-21 17:23:52 顶(0) | 踩(0) 回复
??
回复评论