import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class Calc extends Applet implements ActionListener
{
Label result;
Panel knoppen;
Proc proc;
public void init()
{ Button knop;
String opschrift;
proc = new Proc();
result = new Label( "0", Label.RIGHT );
knoppen = new Panel();
result.setFont( new Font("Arial", Font.BOLD, 20) );
this. setLayout( new BorderLayout() );
knoppen.setLayout( new GridLayout(4,4,6,6) );
for (int n=0; n<16; n++)
{ opschrift = "789/456*123+0C=-".substring(n,n+1);
knop = new Button(opschrift);
knop.addActionListener(this);
knoppen.add( knop );
}
this.add(result , BorderLayout.NORTH );
this.add(knoppen, BorderLayout.CENTER);
}
public void actionPerformed(ActionEvent e)
{
Button b; char c;
b = (Button) (e.getSource());
c = b.getLabel().charAt(0);
if (c=='C') proc.schoon();
else if (c=='=') proc.reken();
else if (c>='0'&&c<='9') proc.cijfer( c-'0' );
else proc.operatie(c);
result.setText( ""+proc.scherm );
}
}
/**
*
*/
class Proc
{
long waarde, vorige, scherm;
char operator;
Proc()
{
schoon();
}
void schoon()
{
waarde = 0;
vorige = 0;
operator = '+';
scherm = 0;
}
void reken()
{
switch(operator)
{
case '+': vorige += waarde; break;
case '-': vorige -= waarde; break;
case '*': vorige *= waarde; break;
case '/': vorige /= waarde; break;
}
scherm = vorige;
waarde = 0;
}
void cijfer(int n)
{
waarde = 10*waarde+n;
scherm = waarde;
}
void operatie(char c)
{
reken();
operator = c;
}
}
两个类,实现简单的计算器,值得学习,上GOOGLE搜的,还很不错的,我现在肯定写不出来的!