实验六、七(简单计算器)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六、七图形应用程序设计
本实验需2次上机时间
上机时间:11月11、18号,星期一。
1、2班11月11 、18号下午2:30-4:05 地点:科技楼423
3、4班11月11、18号上午8:10-9:50地点:科技楼423
实验目的:
熟悉Swing组件及相关方法:掌握常用Swing组件的使用方法、组件的事件监听方法以及主要布局管理器的使用。
实验内容:
编写如下图的一个计算器图形界面,并可进行简单的加减乘除运算。
难点参考代码:
1、编写计算器的逻辑程序、包含加减乘除运算。使用switch语句
来选择不同的运算符。
2、编写计算器图形界面、包含文本和按钮
3、为按钮编写响应函数
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import bel;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
public class Calculator extends WindowAdapter implements ActionListener {
JFrame frame;
JTextField show;
JButton bc, c, ce, ab, jia, jian, cheng, chu, equ, point, sqrt, ds, bfh,
zf;
// 按钮退格,清空,复位,关于,加,减,乘,除,等号,小数点,2次方根,倒数,百分号,正负号
JButton b[] = new JButton[10]; // 按钮数组,数字键0~9
double sum = 0, getValue;
int i = 0, j = 0, p = 0, l, action;
JDialog about;
final int slength = 30; // 设置结果显示有效长度
public void disp() {
frame = new JFrame();
frame.setTitle("xx的个人计算器");
frame.setSize(360, 230);
frame.setLocation(380, 260);
frame.setBackground(Color.LIGHT_GRAY);
frame.setLayout(new FlowLayout(FlowLayout.CENTER));
frame.setResizable(false);
//计算器disTop模块,包括数字显示文本框、back,ce,c,about按钮show = new JTextField(31);
show.setText("0");
show.setHorizontalAlignment(SwingConstants.RIGHT);
show.setEditable(false);
frame.add(show);
Panel dispTop = new Panel();
frame.add(dispTop);
dispTop.setLayout(new GridLayout(1, 4, 3, 3));
bc = new JButton(" Back ");
bc.setForeground(Color.BLUE);
dispTop.add(bc);
ce = new JButton(" CE ");
ce.setForeground(Color.BLUE);
dispTop.add(ce);
c = new JButton(" C ");
c.setForeground(Color.BLUE);
dispTop.add(c);
//广告按钮,显示计算器制作者
ab = new JButton(" About ");
ab.setForeground(Color.BLUE);
dispTop.add(ab);
about = new JDialog(frame, "关于计算器", true);
Label ct = new Label("本计算器由xx 制作", 1);
ct.setForeground(Color.RED);
about.add(ct, "Center");
about.setSize(200, 100);
about.setLocation(500, 300);
//主要按钮显示面板包括disLeft和disRight
Panel dispMain = new Panel();
frame.add(dispMain);
dispMain.setLayout(new GridLayout(1, 2, 10, 10));
//disLeft面板,包括0-9、+/-、。这十二个按钮
Panel dispLeft = new Panel();
dispMain.add(dispLeft);
dispLeft.setLayout(new GridLayout(4, 3, 3, 3));
Panel dispRight = new Panel();
//disRight面板,包括+、-、*、/、sqrt、%、1/x、=这个人几个按钮dispMain.add(dispRight);
dispRight.setLayout(new GridLayout(4, 2, 3, 3));
//新建0-9这是个按钮,并将其添加到disLeft中
for (l = 9; l >= 0; l--) {
b[l] = new JButton(String.valueOf(l));
dispLeft.add(b[l]);
b[l].addActionListener(this);
}
//新建其余按钮,并分别将其添加到各自的面板中
jia = new JButton("+");
jia.setForeground(Color.RED);
jian = new JButton("-");
jian.setForeground(Color.RED);
cheng = new JButton("*");
cheng.setForeground(Color.RED);
chu = new JButton("/");
chu.setForeground(Color.RED);
equ = new JButton("=");
equ.setForeground(Color.RED);
point = new JButton(".");
zf = new JButton(" +/- ");
sqrt = new JButton("sqrt");
bfh = new JButton("%");