`
师大黄飞
  • 浏览: 45242 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Java基础之计算器

阅读更多

 正好最近期末考试考java,所以将以前学习java时候做的一些东西重新总结一下,仅仅供初学者参考。。。先上图吧。

1,首先得把界面做出来(这里只是简单介绍Swing界面,后面会有对swing界面的一些详细介绍)
先上代码,

 

package cnhf523;
import javax.swing.*;
import java.awt.*;
public class Ji {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Ji j=new Ji();
		j.UI();
	}
public void UI(){
	JFrame jf=new JFrame();//实例化一个JFrame类,用来创造一个窗口
	jf.setTitle("黄飞计算器");//设置窗口的标题
	jf.setSize(295,400);//设置窗口的大小
	jf.setLocation(500,500);//设置窗口的位置
	jf.setResizable(false);//设置窗口的大小是否可以改变
	jf.setDefaultCloseOperation(3);//设置点击关闭按钮后执行的操作这里设置为点击后关闭应用程序
	jf.setLayout(new BorderLayout());//设置界面的布局,影响窗口里面组件的排列,这里是设置为框架布局
	//实例化三个面板
	JPanel jp1=new JPanel();
	JPanel jp2=new JPanel();
	JPanel jp3=new JPanel();
	jp1.setLayout(new FlowLayout());//设置面板的布局
	JTextField t=new JTextField("0");//设置一个文本框,初始显示0
	t.setPreferredSize(new Dimension(240,90));//设置文本框的大小
	t.setFont(new Font("黑体",Font.BOLD,30));//设置文本迎文字的类型
	jp1.add(t);//将文本框放到第jp1面板上
	jf.add(jp1,"North");//将第一个面板放到窗口的北部,
	jp2.setLayout(new 	GridLayout(5,5));//第二个面板的布局设为网格布局,用来放置计算器的按钮
	 JS js=new JS(t);//实例话一个JS类,用来实现监听
	 //这里用循环来创建不同的按钮
    String s="+-*/789l456C123%0.=t";
	for(int i=0;i<s.length();i++){
	    JButton b=new JButton(s.substring(i, i+1));//实例化按钮
	    //对特殊按钮进行操作
	    if(s.substring(i,i+1).equals("t")){
	    	b.add(new JLabel("sqr"));
	    }
	    if(s.substring(i,i+1).equals("l")){
	    	b.add(new JLabel("De"));
	    }
	    if(s.substring(i,i+1).equals("r")){
	    	b.add(new JLabel("C"));
	    }
	    jp2.add(b);
	    b.addActionListener(js);//添加监听,事件触发后要实现的具体方法在js里面
	}
	jf.add(jp2,"Center");//将面板jp2加入到窗口上
	jp3.setPreferredSize(new Dimension(300,50));//设置面板jp3的大小
	jp3.add(new JLabel(new ImageIcon("QQ截图20130523215536.png")));//给面板jp3上加一个图片标签
	jf.add(jp3,"South");//将jp3放到窗口的南方
	jf.setVisible(true);//设置窗口是否可见,这里为可见
}
}

 下面这些代码是主要界面部分,

JFrame jf=new JFrame();//实例化一个JFrame类,用来创造一个窗口
	jf.setTitle("黄飞计算器");//设置窗口的标题
	jf.setSize(295,400);//设置窗口的大小
	jf.setLocation(500,500);//设置窗口的位置
	jf.setResizable(false);//设置窗口的大小是否可以改变
	jf.setDefaultCloseOperation(3);//设置点击关闭按钮后执行的操作这里设置为点击后关闭应用程序
	jf.setLayout(new BorderLayout());//设置界面的布局,影响窗口里面组件的排列,这里是设置为框架布局

 然后就是再往这些界面中添加一些东西

 这里,创建了三个面板,分别放在窗体的上中下三个位置,不同位置的的面板里面放的东西不同

//实例化三个面板
	JPanel jp1=new JPanel();
	JPanel jp2=new JPanel();
	JPanel jp3=new JPanel();
	jp1.setLayout(new FlowLayout());//设置面板的布局
	JTextField t=new JTextField("0");//设置一个文本框,初始显示0
	t.setPreferredSize(new Dimension(240,90));//设置文本框的大小
	t.setFont(new Font("黑体",Font.BOLD,30));//设置文本迎文字的类型
	jp1.add(t);//将文本框放到第jp1面板上
	jf.add(jp1,"North");//将第一个面板放到窗口的北部,
	jp2.setLayout(new 	GridLayout(5,5));//第二个面板的布局设为网格布局,用来放置计算器的按钮

 下面是实例化一个用于监听的类

 JS js=new JS(t);//实例话一个JS类,用来实现监听

 

这个类的先不看,先看后面。

 //这里用循环来创建不同的按钮
    String s="+-*/789l456C123%0.=t";
	for(int i=0;i<s.length();i++){
	    JButton b=new JButton(s.substring(i, i+1));//实例化按钮
	    //对特殊按钮进行操作
	    if(s.substring(i,i+1).equals("t")){
	    	b.add(new JLabel("sqr"));
	    }
	    if(s.substring(i,i+1).equals("l")){
	    	b.add(new JLabel("De"));
	    }
	    if(s.substring(i,i+1).equals("r")){
	    	b.add(new JLabel("C"));
	    }
	    jp2.add(b);
	    b.addActionListener(js);//添加监听,事件触发后要实现的具体方法在js里面
	}
	jf.add(jp2,"Center");//将面板jp2加入到窗口上
	jp3.setPreferredSize(new Dimension(300,50));//设置面板jp3的大小
	jp3.add(new JLabel(new ImageIcon("QQ截图20130523215536.png")));//给面板jp3上加一个图片标签
	jf.add(jp3,"South");//将jp3放到窗口的南方
	jf.setVisible(true);//设置窗口是否可见,这里为可见
}
}

 

上面有一行b.addActionListener(js);//添加监听,事件触发后要实现的具体方法在js里面
这样就能对按钮实现监听,这里面得传入一个参数js,这个必须是继承了ActionListener接口的类的对象

public class JS implements ActionListener{

 上面用到s.substring(i, i+1),这是获取字符串s的第i+1个字符

然后再看监听类JS

package cnhf523;
//所要导入的类
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JTextField;
//这个事继承了ActionListener的类,为了给ji类中的按钮添加监听
public class JS implements ActionListener{
public	JTextField k;//文本输入框
float num1=0,num2=0,sum=0;
char ch='#';
public boolean can=false;
public JS(JTextField c){//构造方法里面传入参数
	k=c;
} 
	@Override
	public void actionPerformed(ActionEvent e) {//事件触发后具体要实现的方法
		// TODO Auto-generated method stub
		String sr=e.getActionCommand();//得到命令,判断是哪个事件被触发
		String sq=k.getText();//得到文本框上的类容
		if(sr.equals("l")){//这里是按了后退键
		 if(sq.length()>1){//如果输入的输超过一
			 k.setText(sq.substring(0,sq.length()-1));//只显示第一个数到倒数第二个数
		 }else{
			 if(sr.length()==1)//如果长度是一
				 k.setText("0");//就显示0
		 }
		}
		if(sr.equals("C")){//这里是按了清除键
			k.setText("0");//文本框显示0
			ch='#';
		}
		if(sr.charAt(0)>='0'&&sr.charAt(0)<='9'){//如果按了0-9数字键
			if(can==true){//如果can为true
				k.setText(sr);//文本框只显示刚才按下的数字,因为按下了运算符后,再按下数字,先前的数字就不显示了
				can=false;//设置can为false
			}else{
				if(sq.equals("0")){//
					k.setText(sr);
				}
				else
				k.setText(sq+sr);//显示先前的数加上现在按下的数
			}
			num1=Float.parseFloat(k.getText());//得到文本框的数字,文本框上的是字符,所以转换了下
		}
		//如果按下了运算键
		if(sr.equals("+")||sr.equals("-")||sr.equals("*")||sr.equals("/")||sr.equals("%")){
			can=true;
			num2=num1;
			k.setText(sr);//文本框设置为当前的命令
			ch=sr.charAt(0);//获取是按下了哪个运算
			}
		//如果按下了等于,进行操作
		if(sr.equals("=")){//判断需要进行哪些操作
			switch(ch){
			case '+':sum=num2+num1;break;
			case'-':sum=num2-num1;break;
			case'*':sum=num2*num1;break;
			case'/':sum=num2/num1;break;
			case'%':sum=num2%num1;break;
			}
			//文本框要显示结果,
			k.setText(String.valueOf(sum));//因为sum是数,所以需要转换成字符
			can=true;
			num1=Float.parseFloat(k.getText());
		}
		if(sr.equals(".")){
			k.setText(k.getText()+sr);
		}
		if(sr.equals("t")){//算平方根
			k.setText(String.valueOf(Math.sqrt(Float.parseFloat(k.getText()))));
		}
		}
		}

 Float.parseFloat(k.getText());//将字符转换为数,String.valueOf(Math.sqrt(Float.parseFloat(k.getText())是将数转换为字符

有几个简便方法,比如说要将字符‘3’变成数字3  只需int s=‘3’-‘0’;利用他们ASCII码

将数字转换为字符就是+'0' char c=3+'0';

 

 上面很久以前做的了,现在回首起来确实没什么,当时做出来感觉挺有成就感的,通过实例学习,让我爱上了java,一切兴趣是最重要的,还有一点就是,不会就百度就是,不要怕。如果有任何疑问,都可以找我50860922.

  • 大小: 36 KB
0
3
分享到:
评论

相关推荐

    java基础简单计算器

    ### Java基础简单计算器知识点解析 #### 一、项目概述 本项目主要介绍了一个基于Java语言实现的简单计算器程序。该程序能够接收用户输入,并完成基本的数值计算功能。通过本项目的学习,我们可以深入了解Java的...

    java 基础计算器程序

    该计算器整合了计算器的一般功能,如开方,加减乘除,正负数转换,但计算结果有一定的误差,极小

    简易计算器.rar_java 计算器_java 计算_java计算器_计算器

    1. **Java基础**:此项目展示了Java的基本语法,包括类定义、对象创建、方法声明和调用。在Calculator.java文件中,可以看到如何使用面向对象的方法封装计算逻辑。 2. **控制流**:计算器需要根据用户输入的运算符...

    大学Java基础代码计算器定时器简易银行等

    这个名为"大学Java基础代码计算器定时器简易银行等"的压缩包包含了多个实际应用场景的编程实例,有助于提升学生的实战技能。以下是这些项目的主要知识点详解: 1. **金额大小写改写**: 这个功能涉及到字符串处理...

    java编写的计算器

    Java 编写的计算器是一个基础但实用的编程项目,它展示了如何使用Java语言来实现一个图形用户界面(GUI)程序。这个计算器可能包含了基本的数学运算,如加、减、乘、除,以及可能的一些特殊功能,如求平方根、百分比...

    java仿Windows计算器

    Java仿Windows计算器是一个基于Java编程语言实现的...总的来说,Java仿Windows计算器项目涵盖了Java GUI编程的基础知识,包括组件使用、事件处理、异常处理、逻辑计算等多个方面,是学习Java桌面应用开发的绝佳实践。

    java多功能计算器

    "多功能"暗示了这个计算器不局限于基础计算,可能有多种计算模式,例如金融计算、单位转换等。"计算机"和"计算器"在这里是同义词,指的是用于执行数学运算的软件工具。 【压缩包子文件的文件列表】: 1. **...

    javaSWT简易计算器

    本项目“javaSWT简易计算器”利用SWT来构建一个基本的计算器应用,能够执行基本的数学运算,包括加、减、乘、除以及处理小数。下面我们将深入探讨SWT库、计算器的设计和实现,以及如何在Java中处理数学运算。 1. **...

    Java-计算器源码.zip

    1. **基础语法**:Java是一种面向对象的编程语言,它的语法结构严谨。源码中会包含类(Class)定义、方法(Method)声明以及变量(Variable)声明。每个计算功能都会封装在一个方法中,例如`add()`, `subtract()`, `...

    java PC端计算器

    【Java PC端计算器】是一个基于Java编程语言开发的桌面应用程序,旨在模拟Windows操作系统自带的标准计算器功能和用户界面。虽然这个计算器目前不支持键盘操作,它提供了基本的数学运算,包括加法、减法、乘法、除法...

    java完整版计算器

    综上所述,"java完整版计算器"项目涵盖了Java GUI编程的基础,事件驱动编程,以及基本的算术运算处理。通过NetBeans IDE,开发者可以更专注于业务逻辑,而不用过多关注底层实现,从而提高开发效率。文件名为...

    java计算器实验报告

    这个实验不仅涵盖了基础的Java GUI编程技术,还涉及了事件处理、异常处理和数据验证等核心概念,对于学习Java编程和理解面向对象设计原则具有很好的实践价值。通过完成这个计算器项目,学生可以增强对Java语言的理解...

    基于JAVA语言的计算器图形界面设计.doc

    【基于JAVA语言的计算器图形界面设计】 ...通过扩展这个基础,可以构建功能更丰富的计算器,例如添加括号支持、科学计算功能或历史记录功能。对于学习Java GUI编程的学生或开发者来说,这是一个很好的实践项目。

    基于java的简易计算器

    基于java的简易计算器,实现简单的加减乘除功能,用于学习java基础知识参考

    用java模拟windows计算器

    这个项目是一个学习和实践Java基础知识的好机会,包括GUI设计、事件处理和基本的算术运算。 首先,Java是面向对象的编程语言,非常适合创建桌面应用程序,如计算器。在Java中,我们可以使用Swing库来构建图形用户...

    Java复合型计算器

    总之,"Java复合型计算器"项目涵盖了基础的Java编程、面向对象设计、数学运算、异常处理、用户交互等多个方面的知识。通过完成这个项目,开发者不仅能加深对Java语言的理解,还能提升解决实际问题的能力,特别是对于...

    java GUI简易计算器

    Java GUI简易计算器是一种基于图形用户界面(GUI)的计算应用程序,使用Java编程语言实现。它主要依赖于Java的Swing库来构建用户界面,并通过监听鼠标事件来处理用户的输入和计算操作。在这个项目中,`JLabel`组件被...

    Java编写的计算器附详细注释

    本项目是一个基于Java编写的计算器程序,旨在帮助初学者理解基础的编程概念和Java语法。通过分析这个计算器程序,我们可以学习到许多关键知识点。 首先,让我们探讨Java的基本结构。在Java中,程序通常由类(class...

    java版简易计算器

    首先,让我们深入了解Java的基础知识。Java是一种面向对象的编程语言,由Sun Microsystems(现为Oracle公司)于1995年发布。它的设计目标是具有平台无关性,因此编写一次,到处运行。Java语法简洁且强类型,支持类、...

Global site tag (gtag.js) - Google Analytics