java-计算器实验报告
- 格式:doc
- 大小:178.50 KB
- 文档页数:17
计算器实验报告
一、实验目的
1.熟悉java图形用户界面的设计原理和程序结构
2.能设计复核问题要求的图形用户界面程序
3.熟悉java awt和swing的组合
4.掌握常用组建的事件借口
5.会应用awt和swing组件进行应用程序设计
二、实验内容
运用所学的java语言,实现计算器的基础功能,及科学计算器的一些功能。
三、实验设计
按钮。第二类按钮式功能式按钮,例如+、-、*、/、%等按钮。JMenuBar按钮设置了工具条菜单栏,这次总共设置了两个菜单。这两种按钮需要注册监听,需要实现public void actionPerformed(ActionEvent e)函数,通过e.getSource()可以识别注册监听的按钮,并进行相应的操作。
计算器界面如下所示:
菜单栏代码如下:
jmb=new JMenuBar();
jm1=new JMenu("选项(V)");
//助记符,Alt+v
jm1.setMnemonic('v');
jm2=new JMenu("关于(A)");
jm2.setMnemonic('a');
jmi1=new JMenuItem("标准");
//注册监听
jmi1.addActionListener(this);
jmi1.setActionCommand("标准");
jmi2=new JMenuItem("科学");
jmi2.addActionListener(this);
jmi2.setActionCommand("科学");
jmi3=new JMenuItem("关于计算器");
jmi3.addActionListener(this);
jmi3.setActionCommand("about");
窗体设置的代码:
this.setIconImage(new ImageIcon("images/计算器图片.jpg").getImage());
this.setTitle("计算器");
this.setBounds(500, 180,300,300);
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setResizable(false);
时间监听处理函数代码:
//通常在按钮被按下,或双击一个列表项或选中某个菜单时发生@Override
public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub
if(e.getSource()==jb[18])
{
//等于
double result=0;
num2=Double.parseDouble(jtf.getText());
switch(ch)
{
case'+':
result=num1+num2;
break;
case'-':
result=num1-num2;
break;
case'*':
result=num1*num2;
break;
case'/':
if(num2!=0)
result=num1/num2;
else
jtf.setText("0");
break;
case'%':
if(num2!=0)
result=num1%num2;
else
jtf.setText("0");
break;
case'e':
result=num1*Math.pow(10, num2);
break;
}
if(num2!=0)
{
if(result==(int)(result))
jtf.setText((int)(result)+"");
else
jtf.setText(result+"");
}
isdecnum=false;
}
四、实验总结:
通过对计算器窗体的编写我熟悉java图形用户界面的设计原理和程序结构熟悉java awt和swing的组合。学会将书本上的知识运用在实际中,提升了编程能力。
五.代码:
package com.java;
import java.io.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Calculator_1 extends JFrame implements ActionListener{ /**
* @param args
*/
JTextField jtf=null; //文本框
JButton jb[]=null;//按钮
JPanel jp1=null;
JPanel jp2=null;
JMenuBar jmb=null; //菜单条
JMenu jm1=null,jm2=null; //菜单项
JMenuItem jmi1=null,jmi2=null,jmi3=null; //菜单子选项
boolean isdecnum=false; //判断目前是否为小数
char ch; //获得运算符号
double num1=0,num2=0;
public static void main(String[] args) {
// TODO Auto-generated method stub
Calculator_1 cal=new Calculator_1();
}
public Calculator_1()
{
jmb=new JMenuBar();
jm1=new JMenu("选项(V)");