Java 版图形界面计算器
实验说明及介绍
环境登录
无需密码自动登录,系统用户名 shiyanlou,密码 shiyanlou
环境介绍
本实验环境采用带桌面的 Ubuntu Linux 环境,实验中会用到桌面上的程序:LX 终端(LXTerminal): Linux 命令行终端,打开后会进入 Bash 环境,可以使用 Linux 命令
Eclipse:一款很强大的 IDE
##布局
这个计算器有两个 JPanel。
什么是 JPanel:JPanel 是一般轻量级容器。JPanel 为 javax.swing 包中的,为面板容器,可以加入到 JFrame 中 , 它自身是个容器,可以把其他 compont 加入到 JPanel 中,如 JButton、JTextArea、JTextField 等。两个 JPanel 分别对应这个计算器按键除 “清除” 键外其他的键,另个面板则是输出栏跟 “清除” 键(截取部分代码)。
JPanel pan = new JPanel();
pan.setLayout(new GridLayout(4, 4, 5, 5));// 四行四列 边距为5像素
pan.add(button7);
pan.add(button8);
pan.add(button9);
pan.add(button_chu);
pan.add(button4);
pan.add(button5);
pan.add(button6);
pan.add(button_cheng);
pan.add(button1);
pan.add(button2);
pan.add(button3);
pan.add(button_jian);
pan.add(button0);
pan.add(button_Dian);
pan.add(button_dy);
pan.add(button_jia);
pan.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));// pan对象的边距
JPanel pan2 = new JPanel();
pan2.setLayout(new BorderLayout());
pan2.add(result_TextField, BorderLayout.WEST);
pan2.add(clear_Button, BorderLayout.EAST);
事件处理
事件处理有:数字键、加减乘除运算、小数点处理、等于以及清除。
代码如下(截取部分代码,这里是通过类方法处理的):
//等于
class Listener_dy implements ActionListener {
@SuppressWarnings("unchecked")
public void actionPerformed(ActionEvent e) {
store = (JButton) e.getSource();
vt.add(store);
yuns();
k1 = 1; // 还原开关k1状态
// str1=result;
k2 = 1;
k3 = 1;// 还原开关k3状态
k4 = 1; // 还原开关k4状态
str1 = result; // 为7+5=12 +5=17 这种计算做准备
}
}
计算的实现
public void cal() {
double a2;// 运算数1
double b2;// 运算数2
String c = signal;// 运算符
double result2 = 0;// 结果
if (c.equals("")) {
result_TextField.setText("请输入运算符");
} else {
if (str1.equals(".")) // 字符串 "." 转换成double型数据时 会出错 所以手工转
str1 = "0.0";
if (str2.equals("."))
str2 = "0.0";
a2 = Double.valueOf(str1).doubleValue();
b2 = Double.valueOf(str2).doubleValue();
if (c.equals("+")) {
result2 = a2 + b2;
}
if (c.equals("-")) {
result2 = a2 - b2;
}
if (c.equals("*")) {
result2 = a2 * b2;
}
if (c.equals("/")) {
if (b2 == 0) {
result2 = 0;// 0000000000000 by 0 cu!
} else {
result2 = a2 / b2;
}
}
result = ((new Double(result2)).toString());
result_TextField.setText(result);
}
}
实验结果
##实验心得
通过这次实验我对实验楼有了了一定的了解,也初步认识JAVAB版图形界面计算器。