java语言综合设计实验报告

2019-01-26 20:52

Java语言综合设计实验报告

--GUI编程

设计题目: JAVA

班级: 过072班

学号: 070483 姓名: 许正贤 成绩:

2009年 6月 23日

计算器

一、 程序功能简介

具有日常计算的大部分功能:

1,能够正确的进行加减乘除运算;

2,能够进行数学计算,例如sin(),cos(),tan()等等; 3,能够进行数据存储;

说明:完全模仿Windows自带的计算器所写,但有些功能还需完善。

二、 算法设计

设计了一个类,整个界面设计用到了两个布局管理器,分别是BorderLayout和FlowLayout。

程序中用到了setBackground和setHorizontalAlignment等多个函数,形成了一个比较不错的windows的窗体外观,除此之外还用到了:JFrame类中的JPanel,JLabel,JComboBox,…用了大量类库中的函数实现了很多功能。

三、 源程序代码及注释

/*

* @author XuZhengXian */

import java.awt.*;

import java.awt.event.*; import javax.swing.*;

import java.text.DecimalFormat;

public class MyCalculator implements ActionListener {

// 设计面板中的单位 JFrame frame;

JTextField textAnswer, textMemory; JLabel label;

JPanel panel, panel1, panel2, panel3; JMenuBar menuBar; JMenu editMenu;

JMenuItem copyItem, pasteItem;

JLabel labelSpace; // 控制面板的形状 JButton buttonBS, buttonCE, buttonC; JButton button[];

JButton buttonMC, buttonMR, buttonMS, buttonMAdd;

JButton buttonDot, buttonAddAndSub, buttonAdd, buttonSub, buttonMul,

buttonDiv, buttonEqual;

JButton buttonSin, buttonCos, buttonTan, buttonPI, buttonXY, buttonX2, buttonSqrt, buttonDS;

DecimalFormat df; // 设置数据输出精度 boolean clickable; // 控制当前能否按键 double memoryd; // 使用内存中存储的数字 int memoryi;

boolean resultIndicate, dotFlag;

double vard, answerd; // 用来保存double型数据的中间值和最后结果 short key = -1, prekey = -1; // 用来保存当前进行何种运算和保存前次进行何种运算

String copy; 度

// 构造函数

public MyCalculator() { clickable = true; answerd = 0;

frame = new JFrame(\计算器\);

df = new DecimalFormat(\); // 设置数据输出精textAnswer = new JTextField(15); textAnswer.setText(\);

textAnswer.setEditable(false);

textAnswer.setBackground(new Color(255, 255, 255)); textAnswer.setHorizontalAlignment(JTextField.RIGHT); panel = new JPanel();

frame.getContentPane().add(panel); panel1 = new JPanel();

panel2 = new JPanel();

panel.setLayout(new BorderLayout()); // 设计整个面板

menuBar = new JMenuBar();

editMenu = new JMenu(\编辑\);

copyItem = new JMenuItem(\复制\); copyItem.addActionListener(this); pasteItem = new JMenuItem(\粘贴\); pasteItem.addActionListener(this); editMenu.add(copyItem); editMenu.add(pasteItem); menuBar.add(editMenu);

panel.add(menuBar, BorderLayout.NORTH);

panel.add(textAnswer, BorderLayout.CENTER); panel.add(panel1, BorderLayout.SOUTH); panel1.setLayout(new BorderLayout());

label = new JLabel(\过072 许正贤 070483\); textMemory = new JTextField(5); textMemory.setEditable(false);

textMemory.setBackground(new Color(217, 217, 217)); labelSpace = new JLabel(\);

buttonBS = new JButton(\);

buttonBS.setForeground(new Color(255, 0, 0)); buttonCE = new JButton(\);

buttonCE.setForeground(new Color(255, 0, 0)); buttonC = new JButton(\);

buttonC.setForeground(new Color(255, 0, 0)); buttonBS.addActionListener(this); buttonCE.addActionListener(this); buttonC.addActionListener(this);

panel1.add(panel2, BorderLayout.NORTH);

panel2.setLayout(new FlowLayout(FlowLayout.RIGHT)); panel2.add(label);

label.setHorizontalAlignment(JLabel.CENTER); panel2.add(textMemory); panel2.add(labelSpace); panel2.add(buttonBS); panel2.add(buttonCE); panel2.add(buttonC); panel3 = new JPanel();

panel1.add(panel3, BorderLayout.CENTER); button = new JButton[10];

for (int i = 0; i < button.length; i++) {

button[i] = new JButton(Integer.toString(i));

button[i].setForeground(new Color(0, 0, 255)); }

buttonMC = new JButton(\);

buttonMC.setForeground(new Color(255, 0, 0)); buttonMR = new JButton(\);

buttonMR.setForeground(new Color(255, 0, 0)); buttonMS = new JButton(\);

buttonMS.setForeground(new Color(255, 0, 0)); buttonMAdd = new JButton(\);

buttonMAdd.setForeground(new Color(255, 0, 0)); buttonDot = new JButton(\);

buttonDot.setForeground(new Color(0, 0, 255)); buttonAddAndSub = new JButton(\);

buttonAddAndSub.setForeground(new Color(0, 0, 255)); buttonAdd = new JButton(\);

buttonAdd.setForeground(new Color(255, 0, 0)); buttonSub = new JButton(\);

buttonSub.setForeground(new Color(255, 0, 0)); buttonMul = new JButton(\);

buttonMul.setForeground(new Color(255, 0, 0)); buttonDiv = new JButton(\);

buttonDiv.setForeground(new Color(255, 0, 0)); buttonSin = new JButton(\);

buttonSin.setForeground(new Color(12, 150, 50)); buttonCos = new JButton(\);

buttonCos.setForeground(new Color(12, 150, 50)); buttonTan = new JButton(\);

buttonTan.setForeground(new Color(12, 150, 50)); buttonEqual = new JButton(\);

buttonEqual.setForeground(new Color(255, 0, 0)); buttonPI = new JButton(\);

buttonPI.setForeground(new Color(12, 150, 50)); buttonX2 = new JButton(\);

buttonX2.setForeground(new Color(12, 150, 50)); buttonSqrt = new JButton(\);

buttonSqrt.setForeground(new Color(12, 150, 50)); buttonDS = new JButton(\);

buttonDS.setForeground(new Color(12, 150, 50)); // 将所有行为与监听绑定

panel3.setLayout(new GridLayout(4, 7)); panel3.add(buttonMC);

buttonMC.addActionListener(this); panel3.add(button[7]);

button[7].addActionListener(this);


java语言综合设计实验报告.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:不必仰望别人,自己亦是风景

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: