- 1
- 0
- 约1.28万字
- 约 11页
- 2016-11-22 发布于贵州
- 举报
Java编写计算的几种常见的做法
Java编写计算器的几种常见的做法.txt9母爱是一滴甘露,亲吻干涸的泥土,它用细雨的温情,用钻石的坚毅,期待着闪着碎光的泥土的肥沃;母爱不是人生中的一个凝固点,而是一条流动的河,这条河造就了我们生命中美丽的情感之景。import java.awt.*;
import java.awt.event.*;
public class MyCalculator {
private Frame f;
private TextField tf = new TextField(30);
private long result;
private boolean append=false;
private char operator==;
private Button[] btn=new Button[15];
public MyCalculator() {
initComponent();
}
private void initComponent() {
f = new Frame(My Calculator V1.0);
f.setLayout(new BorderLayout()); //The frame uses BorderLayout
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) {
System.exit(0);
}
});
Panel centerPanel = new Panel();
centerPanel.setLayout(new GridLayout(5, 3)); //The panel uses GridLayout
NumberListener nl=new NumberListener();
OperatorListener ol=new OperatorListener();
btn[10]=new Button(+);
btn[11]=new Button(-);
btn[12]=new Button(*);
btn[13]=new Button(/);
btn[14]=new Button(=);
for (int i=0;i=9;i++){
btn[i]=new Button(String.valueOf(i));
centerPanel.add(btn[i]);
btn[i].addActionListener(nl);
if (i%2==1){
centerPanel.add(btn[(i+19)/2]);
btn[(i+19)/2].addActionListener(ol);
}
}
f.add(centerPanel, BorderLayout.CENTER);
Panel northPanel = new Panel();
tf.setEditable(false);
northPanel.add(tf);
f.add(northPanel, BorderLayout.NORTH);
}
public void go() {
f.pack();
f.setVisible(true);
}
public static void main(String[] args) {
new MyCalculator().go();
}
/**
*采用成员内部类方式,实现监听器接口,方便访问主类内类内部成员。
*此类负责数字按钮Action事件监听和处理
*/
class NumberListener implements ActionListener{
public void actionPerformed(ActionEvent e){
if (!append)
原创力文档

文档评论(0)