正好最近期末考试考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.
相关推荐
### Java基础简单计算器知识点解析 #### 一、项目概述 本项目主要介绍了一个基于Java语言实现的简单计算器程序。该程序能够接收用户输入,并完成基本的数值计算功能。通过本项目的学习,我们可以深入了解Java的...
该计算器整合了计算器的一般功能,如开方,加减乘除,正负数转换,但计算结果有一定的误差,极小
1. **Java基础**:此项目展示了Java的基本语法,包括类定义、对象创建、方法声明和调用。在Calculator.java文件中,可以看到如何使用面向对象的方法封装计算逻辑。 2. **控制流**:计算器需要根据用户输入的运算符...
这个名为"大学Java基础代码计算器定时器简易银行等"的压缩包包含了多个实际应用场景的编程实例,有助于提升学生的实战技能。以下是这些项目的主要知识点详解: 1. **金额大小写改写**: 这个功能涉及到字符串处理...
Java 编写的计算器是一个基础但实用的编程项目,它展示了如何使用Java语言来实现一个图形用户界面(GUI)程序。这个计算器可能包含了基本的数学运算,如加、减、乘、除,以及可能的一些特殊功能,如求平方根、百分比...
Java仿Windows计算器是一个基于Java编程语言实现的...总的来说,Java仿Windows计算器项目涵盖了Java GUI编程的基础知识,包括组件使用、事件处理、异常处理、逻辑计算等多个方面,是学习Java桌面应用开发的绝佳实践。
"多功能"暗示了这个计算器不局限于基础计算,可能有多种计算模式,例如金融计算、单位转换等。"计算机"和"计算器"在这里是同义词,指的是用于执行数学运算的软件工具。 【压缩包子文件的文件列表】: 1. **...
本项目“javaSWT简易计算器”利用SWT来构建一个基本的计算器应用,能够执行基本的数学运算,包括加、减、乘、除以及处理小数。下面我们将深入探讨SWT库、计算器的设计和实现,以及如何在Java中处理数学运算。 1. **...
1. **基础语法**:Java是一种面向对象的编程语言,它的语法结构严谨。源码中会包含类(Class)定义、方法(Method)声明以及变量(Variable)声明。每个计算功能都会封装在一个方法中,例如`add()`, `subtract()`, `...
【Java PC端计算器】是一个基于Java编程语言开发的桌面应用程序,旨在模拟Windows操作系统自带的标准计算器功能和用户界面。虽然这个计算器目前不支持键盘操作,它提供了基本的数学运算,包括加法、减法、乘法、除法...
综上所述,"java完整版计算器"项目涵盖了Java GUI编程的基础,事件驱动编程,以及基本的算术运算处理。通过NetBeans IDE,开发者可以更专注于业务逻辑,而不用过多关注底层实现,从而提高开发效率。文件名为...
这个实验不仅涵盖了基础的Java GUI编程技术,还涉及了事件处理、异常处理和数据验证等核心概念,对于学习Java编程和理解面向对象设计原则具有很好的实践价值。通过完成这个计算器项目,学生可以增强对Java语言的理解...
【基于JAVA语言的计算器图形界面设计】 ...通过扩展这个基础,可以构建功能更丰富的计算器,例如添加括号支持、科学计算功能或历史记录功能。对于学习Java GUI编程的学生或开发者来说,这是一个很好的实践项目。
基于java的简易计算器,实现简单的加减乘除功能,用于学习java基础知识参考
这个项目是一个学习和实践Java基础知识的好机会,包括GUI设计、事件处理和基本的算术运算。 首先,Java是面向对象的编程语言,非常适合创建桌面应用程序,如计算器。在Java中,我们可以使用Swing库来构建图形用户...
总之,"Java复合型计算器"项目涵盖了基础的Java编程、面向对象设计、数学运算、异常处理、用户交互等多个方面的知识。通过完成这个项目,开发者不仅能加深对Java语言的理解,还能提升解决实际问题的能力,特别是对于...
Java GUI简易计算器是一种基于图形用户界面(GUI)的计算应用程序,使用Java编程语言实现。它主要依赖于Java的Swing库来构建用户界面,并通过监听鼠标事件来处理用户的输入和计算操作。在这个项目中,`JLabel`组件被...
本项目是一个基于Java编写的计算器程序,旨在帮助初学者理解基础的编程概念和Java语法。通过分析这个计算器程序,我们可以学习到许多关键知识点。 首先,让我们探讨Java的基本结构。在Java中,程序通常由类(class...
首先,让我们深入了解Java的基础知识。Java是一种面向对象的编程语言,由Sun Microsystems(现为Oracle公司)于1995年发布。它的设计目标是具有平台无关性,因此编写一次,到处运行。Java语法简洁且强类型,支持类、...