内容发布更新时间 : 2024/11/19 21:15:31星期一 下面是文章的全部内容请认真阅读。
面向对象程序设计
实验报告
学 院 计算机科学与技术学院 专 业 计算机科学与技术 学 号 姓 名 指导教师
2016 年 1 月 1 日
1
一、实验目的
参照Windows计算器功能,用java语言编写一个图形化计算器程序,实现加、减、乘、
除等运算。
二、实验题目
Java计算器的编写
三、实验内容
import java.awt.*; import java.awt.event.*; import javax.swing.*;
public class Calculator extends JFrame implements ActionListener { //定义字符型数组,存放按钮字符
private final String[] str = { \
\
//定义按钮数组,用于实现上面的按钮字符 JButton[] buttons = new JButton[str.length]; //定义文本行,初始显示0
JTextField display = new JTextField(\ //计算器构造函数 public Calculator() { super(\计算器\
//panel1是集合了数字和运算符的面板
1
JPanel panel1 = new JPanel(new GridLayout(5, 4)); for (int i = 0; i < str.length; i++) { //把按钮数组加进来
buttons[i] = new JButton(str[i]); panel1.add(buttons[i]); }
this.addWindowListener(new WinClose()); //panel2是文本域和归零面板
JPanel panel2 = new JPanel(new BorderLayout()); panel2.add(\
getContentPane().setLayout(new BorderLayout()); getContentPane().add(\ getContentPane().add(\ // 为每个数字和运算符按钮添加事件监听器 for (int i = 0; i < str.length; i++) buttons[i].addActionListener(this); //为文本域添加事件监听器
display.addActionListener(this); //设置窗口位置
setBounds(500, 200, 400, 400); //设置框架不能改变大小 setResizable(false); //设置组件可见 setVisible(true);
2
//调整此窗口的大小,以适合其子组件的首选大小和布局 pack(); }
//value用来记录当前文本域的数值 double value=0;
public void actionPerformed(ActionEvent e) { String label = e.getActionCommand(); if(label.equals(\ display.setText(\
}
else if(label.equals(\ }
else if(label.equals(\ }
value=Double.parseDouble(display.getText()); if(value<0){ } else{ }
value=Math.sqrt(value);
display.setText(String.valueOf(value)); display.setText(\负数不存在平方根!\handleC();
3
else if(label.equals(\ }
value=Double.parseDouble(display.getText())*(-1); display.setText(String.valueOf(value));
else if (\
/*(\意思是当前输入的数字是“0123456789”中的一个时,响应输入数字事件,和下面同效果
* (label.equals(\label.equals(\label.equals(\label.equals(\label.equals(\
label.equals(\
label.equals(\label.equals(\
handleNumber(label); else
handleOperator(label); }
//设置布尔型变量,用于标记是否是第一次按下小数点,初始为是 boolean isFirstDigit = true; //响应数字按钮
public void handleNumber(String key) { if (isFirstDigit)
display.setText(key);
else if ((key.equals(\ display.setText(display.getText() + \
4