其实计算器本身的功能,每个编程语言本身就能实现,比如说我在python中敲击“3+2”的命令,返回值就是5。那么如果需要设计计算器,则关键的部分在于整个的算法页面布局,和功能的逻辑关系,以下我使用Java实现了计算器的布局即简易的功能。
定义类Calculator的类,然后在中间添加容器界面,实现布局。
public Calculator() {
super ("计算器");
container=getContentPane();
textField=new JTextField(100);
buttons=new JButton[KEYS.length];
JPanel panel = new JPanel(new GridLayout(6,4));//实例化布局为六行四列
getContentPane().add("Center",panel);//将容器添加到Jframe里面
for(int count=0;count<KEYS.length;count++)
{
buttons[count]=new JButton(KEYS [count]);
buttons[count].addActionListener(this);
}// 将数组keys中的字符依次添加到网络布局的按钮中
for(int i=0;i<KEYS.length;i++)
{
panel.add(buttons[i]);
}
textField.addActionListener(this);// 添加实现文本内容的监听
container.add(panel);
getContentPane().add("North",textField);//使文本框在最上边显示
setSize(500,600);//设置布局的大小
setVisible(true);//设置为可见
}//处理按钮,设置布局
处理数字的逻辑也不难,见以下注释及代码:
private void handleNumber(String key){
if (firstdigit) {
// 输入的第一个数字
textField.setText(key);
}
else if ((key.equals(".")) && (textField.getText().indexOf(".") < 0)) {
// 输入的是小数点,并且之前没有小数点,则将小数点附在结果文本框的后面
textField.setText(textField.getText() + ".");
} else if (!key.equals(".")) {
// 如果输入的不是小数点,则将数字附在结果文本框的后面
textField.setText(textField.getText() + key);
}
// 以后输入的肯定不是第一个数字了
firstdigit = false;
}
若想要完整具体的代码,可以看:https://download.csdn.net/download/mingangel/89364895