JAVA项目实战(计算器)资料_第1页
JAVA项目实战(计算器)资料_第2页
JAVA项目实战(计算器)资料_第3页
JAVA项目实战(计算器)资料_第4页
JAVA项目实战(计算器)资料_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精品文档JAVA 项目实战 - 计算器一、开发环境Eclipse 集成开发环境。二、实现功能加、减、乘、除的整数运算。三、运用的知识点JFrame 窗体的使用JButton 按钮的使用JTextFiled 输入文本框的使用Container 容器的使用监听事件的使用内部类If 语句Switch case 语句包精品文档精品文档包的引用数据类型之间的转换(String 转 Int 转 DoubleDouble.valueOf(String str),Interger.valueOf(String str))四、重点知识的讲解常用窗体窗体作为 Swing 应用程序中组件的承载体,处于非常重要的位置

2、。 Swing 中常用的窗体包括 JFrame 和 JDialog,本节将着重讲解这两个窗 体的使用方法。1、 JFrame 窗体JFrame窗体是一个容器,它是 Swing 程序中各个组件的载体,可以将 JFrame 看作是承载这些 Swing 组件的容器。在开发应用程序时可以通过继承 java.swing.IFrame 类创建一个窗体,在这个窗体中添加组件,同时为组件 设置事件。由于该窗体继承了 JFrame 类,所以它拥有“最大化”、“最小化” 和关闭等按钮。下面将详细讲解 JFrame 窗体在 Java 应用程序中的使用方法。JFrame 在程序中的语法格式如下:JFrame jf=n

3、ew JFrame(title):Container container=jf getContentPane0;精品文档精品文档参数含义如下:jf:JFrame 类的对象container:Container类的对象,可以使用 JFrame 对象调用 getContentPane()方法获取。读者大致应该有这样一个概念,Swing 组件的窗体通常与组件和容器相关,所 以在 JFrame 对象创建完成后,需要调用 getContentPane()方法将窗体转换为容器,然后在容器中添加组件或设置布局管理器。通常,这个容器用来包 含和显示组件。如果需要将组件添加至容器,可以使用来自 Containe

4、r 类的 add()方法进行设置。例如:container.add(new JButton(按钮”); /Button按钮组件在容器添加组件后,也可以使用 Container 类的 remove()方法将这些 组件从容器中删除。例如container remove(new JButton(按钮”);下面的实例中实现了 JFrame 对象创建一个窗体,并在其中添加一个组件。 【例】在项目中创建 Examplel 类,该类继承 JFrame 类成为窗体类,在该类 中创建标签组件,并添加到窗体界面中。import java.awt.Color;import java.awt.Container;im

5、port javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.SwingConstants;import javax.swing.WindowConstants;精品文档精品文档public class Example1 extends JFrame /定义一个类继承 JFrame 类public Example1(String titile)/定义一个构造方法,构造一个窗体。JFrame jf = new JFrame(titile);/实例化一个 JFrame 对象Container container = jf.

6、getContentPane();/获取一个容器JLabel jl = new JLabel(这是一个 JFrame 窗体);/实例化一个 JLabel 对象 /使标签上的文字居中jl.setHorizontalAlignment(SwingConstants.CENTER);container.add(jl);/将标签添加到容器中container.setBackground(Color.WHITE);/设置容器的背景颜色 jf.setVisible(true);/设置窗体可视jf.setSize(400, 400);/设置窗体大小/设置窗体关闭方式jf.setDefaultCloseOpe

7、ration(WindowConstants.EXIT_ON_CLOSE);public static void main(String args) /在主方法中构造一个窗体 new Example1(创建一个 JFrame 窗体);运行本实例程序,结果如图所示。精品文档方法中实精品文档在例中,Exatplel 类继承了 JFrame 类,在Example1(String titile)例化 JFrmne 对象。JFrame 类的常用构造方法包括以下两种形式public JFrame()。public JFrame(String title).JFrame 类中的两种构造方法分别为无参的构造方

8、法与有参的构造方法, 第 1 种形式的构造方法可以创建一个初始不可见、没有标题的新窗体;第 2 种形式的构造方法在实例化该 JFrame 对象时可以创建一个不可见但具有标题 的窗体。可以使用 JFrme 对像调用 show()方法使窗体可见,但是该方法早已被新版 JDK 所弃用,通常使用 setVisible(true)方法使窗体可见。同时可以使用 setSize(int x,int y)方法设置窗体大小,其中 x 与 y 变量分别代表窗体的宽与高。精品文档精品文档创建窗体后,需要给予窗体一个关闭方式,可以调用 setDefaultCloseOperation()方法关闭窗体。Java 为窗体

9、关闭提供了多种 方式,常用的有以下 4 种DO_NOTHING_ON_CLOSE。DISPOSE_ON_CLOSE。HIDE_ON_CLOSE。EXTT_ON_CLOSE。第 1 种窗体退出方式代表什么都不做就将窗体关闭;第 2 种退出方式则代表 任何注册监听程序对象后会自动隐藏并释放窗体;第 3 种方式表示隐藏窗口的 默认窗口关闭;第 4 种退出方式表示退出应用程序默认窗口关闭。2、JDialog 窗体JDialog窗体是 Swing 组件中的对话框,它继承了 AWT 组件 java.awtDialog 类。JDialog窗体的功能是从一个窗体中弹出另一个窗体,就像是在使用 IE 浏览器时弹

10、出的确定对话框一样。JDialog 窗体实质上就是另一种类型的窗 体,它与 JFrame 窗体类似,在使用时也需要调用 getContentPane()方法将 窗体转换为容器,然后在容器中设置窗体的特性。精品文档精品文档在应用程序中创建 JDialog 窗体需要实例化 JDialog 类,通常使用以下 几个 JDialog 类的构造方法。public JDialog():创建一个没有标题和父窗体的对话框。public JDialog(Frame f): 创建一个指定父窗体的对话框,但该窗体 没有标题。public JDialog(Frame f,boolean model):创建一个指定类型的

11、对 话框,并指定父窗体,但该窗体没有指定标题。public JDialog(Frame f,String title):创建一个指定标题和父窗 体的对话框。public JDialog(Frame f String titleboolean model):创建一个 指定标题、窗体和模式的对话框。下面来看一个实例,该实例主要实现单击 JFrme 窗体中的按钮后,弹出 一个对话框窗体。【例】在项目中创建 MyJDialog 类,该类继承 JDialog 窗体,并在窗口中添加按钮,当用户点击该按钮后,将弹出一个对话框窗体。本实例代码如下: import java.awt.Container;impo

12、rt java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;精品文档精品文档import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.SwingConstants;public class MyFrame extends JFramepublic MyFrame()Container container = getContentPa

13、ne();/创建一个容器 container.setLayout(null);JLabel jl = new JLabel(这是一个 JFrame 窗体);/在窗体中设置标签 /使标签上的文字居中jl.setHorizontalAlignment(SwingConstants.CENTER );container.add(jl);JButton bl = new JButton(弹出对话框);/实例化一个按钮bl.setBounds(10, 10, 100, 21);container.add(bl);setSize(400,400);/将按钮添加到容器中 /设置窗体的大小bl.addActi

14、onListener(new ActionListener()/为按钮添加鼠标点击事件Overridepublic void actionPerformed(ActionEvent e) /使 MyDialog 窗体可见new MyDialog(MyFrame.this).setVisible(true);精品文档精品文档);public static void main(String args) new MyFrame().setVisible(true);class MyDialog extends JDialogpublic MyDialog(MyFrame frame)/实例化一个 J

15、Dialog 对象,指定对话框的父窗体、窗体标题和类型 super(frame ,第一个 Dialog 窗体,true);Container container = getContentPane();/创建一个容器container.add(new JLabel(这是一个对话框);/在容器中添加标签 setBounds(120,120,100,100);/设置对话框的大小运行本实例,结果如图所示。精品文档精品文档在本实例中,为了使对话框在父窗体弹出,定义了一个 JFrame 窗体,首先在该窗体中定义一个按钮,然后为此按钮添加一个鼠标单击监听事件,这里使用 new MyJDialog().set

16、Visible(true)语句使对话框窗体可见,这样就实现 了用户单击该按钮后弹出对话框的功能。在 MyJDialog 类中,由于它继承了 JDialog 类,所以可以在构造方法 中使用 super 关键字调用 JDialog 构造方法。在这里使用了public JDialog(Frame f,String title, boolean model)这种形式的 构造方法,相应地设置了自定义的 JFrame 窗体以及对话框的标题和窗体类型。本实例代码中可以看到,JDialog 窗体与 JFrame 窗体形式基本相同,甚至在设置窗体的特性时调用的方法名称都基本相同,如设置窗体大小、窗体关 闭状态等

17、。计算器精品文档精品文档package com.rakey.ui;import java.awt.Color;import java.awt.Container;import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;精品文档精品文档import javax.swing.JTextField;import javax.swing.WindowConstants;p

18、ublic class UI private JButton clear;/ 清除按钮(AC)private JButton backspace;/ 退格键private JButton zhengfuhao;/ +/-键private JButton chuhao;/ 除号 private JButton b_7;/ 按键 7private JButton b_8;/ 按键 8private JButton b_9;/ 按键 7private JButton b_cheng;/ 乘号键private JButton b_4;/ 按键 4private JButton b_5;/ 按键 5pr

19、ivate JButton b_6;/ 按键 6private JButton b_jian;/ 减号键 精品文档精品文档private JButton b_1;/ 按键 1private JButton b_2;/ 按键 2private JButton b_3;/ 按键 3private JButton b_jia;/ 加号键private JButton b_0; / 按键 0private JButton b_dian;/ 按键.private JButton b_deng;/ 按键=private JTextField display;public String integer;pu

20、blic UI() / 1:新建一个 JFrame 对象为 jfJFrame jf = new JFrame(计算器);/ 2:设置布局jf.setLayout(null);/ 3:得到一个容器 containerContainer container = jf.getContentPane(); 精品文档精品文档/ 改变容器(container)的背景颜色container.setBackground(Color.YELLOW);/ 新建一个 JTextField 对象display = new JTextField(0);/ 设置 JTextField 在 container 当中的位置和

21、 JTextField 的宽 度,高度display.setBounds(10, 10, 310, 100);/ 设置字体的大小和字体display.setFont(new Font(楷体, Font.BOLD, 40);/ 设置字体的颜色display.setForeground(new Color(255, 0, 0);/ 设置字体的显示位置(从最右边开始显示)display.setHorizontalAlignment(JTextField.RIGHT);/ 把 JTextField 放到 container 容器当中container.add(display);/ 新建一个 JButt

22、on 对象精品文档精品文档clear = new JButton(AC);/ 设置 JButton 在 container 当中的位置和 JButton 的宽度,高度 clear.setBounds(10, 115, 70, 40);/ 把 JButton 放到 container 容器当中container.add(clear);clear.addActionListener(new Click();/ 新建一个 JButton 对象backspace = new JButton();/ 设置 JButton 在 container 当中的位置和 JButton 的宽度,高度 backspa

23、ce.setBounds(90, 115, 70, 40);/ 把 JButton 放到 container 容器当中container.add(backspace);backspace.addActionListener(new Click();/ 新建一个 JButton 对象zhengfuhao = new JButton(+/-);/ 设置 JButton 在 container 当中的位置和 JButton 的宽度,高度 精品文档精品文档zhengfuhao.setBounds(170, 115, 70, 40);/ 把 JButton 放到 container 容器当中 conta

24、iner.add(zhengfuhao);zhengfuhao.addActionListener(new Click();/ 新建一个 JButton 对象chuhao = new JButton();/ 设置 JButton 在 container 当中的位置和 JButton 的宽度,高度 chuhao.setBounds(250, 115, 70, 40);/ 把 JButton 放到 container 容器当中container.add(chuhao);chuhao.addActionListener(new Click();/ 新建一个 JButton 对象b_7 = new J

25、Button(7);/ 设置 JButton 在 container 当中的位置和 JButton 的宽度,高度 b_7.setBounds(10, 165, 70, 40);精品文档精品文档/ 把 JButton 放到 container 容器当中container.add(b_7);b_7.addActionListener(new Click();/ 新建一个 JButton 对象b_8 = new JButton(8);/ 设置 JButton 在 container 当中的位置和 JButton 的宽度,高度 b_8.setBounds(90, 165, 70, 40);/ 把 JB

26、utton 放到 container 容器当中container.add(b_8);b_8.addActionListener(new Click();/ 新建一个 JButton 对象b_9 = new JButton(9);/ 设置 JButton 在 container 当中的位置和 JButton 的宽度,高度 b_9.setBounds(170, 165, 70, 40);/ 把 JButton 放到 container 容器当中container.add(b_9);精品文档精品文档b_9.addActionListener(new Click();/ 新建一个 JButton 对象

27、b_cheng = new JButton();/ 设置 JButton 在 container 当中的位置和 JButton 的宽度,高度 b_cheng.setBounds(250, 165, 70, 40);/ 把 JButton 放到 container 容器当中container.add(b_cheng);b_cheng.addActionListener(new Click();/ 新建一个 JButton 对象b_4 = new JButton(4);/ 设置 JButton 在 container 当中的位置和 JButton 的宽度,高度 b_4.setBounds(10,

28、215, 70, 40);/ 把 JButton 放到 container 容器当中container.add(b_4);b_4.addActionListener(new Click();精品文档精品文档/ 新建一个 JButton 对象b_5 = new JButton(5);/ 设置 JButton 在 container 当中的位置和 JButton 的宽度,高度 b_5.setBounds(90, 215, 70, 40);/ 把 JButton 放到 container 容器当中container.add(b_5);b_5.addActionListener(new Click()

29、;/ 新建一个 JButton 对象b_6 = new JButton(6);/ 设置 JButton 在 container 当中的位置和 JButton 的宽度,高度 b_6.setBounds(170, 215, 70, 40);/ 把 JButton 放到 container 容器当中container.add(b_6);b_6.addActionListener(new Click();/ 新建一个 JButton 对象b_jian = new JButton();精品文档精品文档/ 设置 JButton 在 container 当中的位置和 JButton 的宽度,高度 b_jia

30、n.setBounds(250, 215, 70, 40);/ 把 JButton 放到 container 容器当中container.add(b_jian);b_jian.addActionListener(new Click();/ 新建一个 JButton 对象b_1 = new JButton(1);/ 设置 JButton 在 container 当中的位置和 JButton 的宽度,高度 b_1.setBounds(10, 265, 70, 40);/ 把 JButton 放到 container 容器当中container.add(b_1);b_1.addActionListe

31、ner(new Click();/ 新建一个 JButton 对象b_2 = new JButton(2);/ 设置 JButton 在 container 当中的位置和 JButton 的宽度,高度 精品文档精品文档b_2.setBounds(90, 265, 70, 40);/ 把 JButton 放到 container 容器当中container.add(b_2);b_2.addActionListener(new Click();/ 新建一个 JButton 对象b_3 = new JButton(3);/ 设置 JButton 在 container 当中的位置和 JButton

32、的宽度,高度 b_3.setBounds(170, 265, 70, 40);/ 把 JButton 放到 container 容器当中container.add(b_3);b_3.addActionListener(new Click();/ 新建一个 JButton 对象b_jia = new JButton();/ 设置 JButton 在 container 当中的位置和 JButton 的宽度,高度 b_jia.setBounds(250, 265, 70, 40);/ 把 JButton 放到 container 容器当中精品文档精品文档container.add(b_jia);b

33、_jia.addActionListener(new Click();/ 新建一个 JButton 对象b_0 = new JButton(0);/ 设置 JButton 在 container 当中的位置和 JButton 的宽度,高度 b_0.setBounds(10, 315, 150, 40);/ 把 JButton 放到 container 容器当中container.add(b_0);b_0.addActionListener(new Click();/ 新建一个 JButton 对象b_dian = new JButton(.);/ 设置 JButton 在 container

34、当中的位置和 JButton 的宽度,高度 b_dian.setBounds(170, 315, 70, 40);/ 把 JButton 放到 container 容器当中container.add(b_dian);b_dian.addActionListener(new Click();精品文档精品文档/ 新建一个 JButton 对象b_deng = new JButton(=);/ 设置 JButton 在 container 当中的位置和 JButton 的宽度,高度 b_deng.setBounds(250, 315, 70, 40);/ 把 JButton 放到 container

35、 容器当中container.add(b_deng);b_deng.addActionListener(new Click();/ 使该窗体可见(false:不可见,true:可见)jf.setVisible(true);/ 设置窗体的大小jf.setSize(345, 400);/ 关闭窗体jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE );String shu_1 = 0;/ 保存输入数据精品文档精品文档String shu_2 = 0;/ 保存输入数据String fuhao = 0;/ 存放计算符号/* 类名:Clic

36、k* 功能:监听各个按键是否按下,处理各个按键 按下的内容和相关的功 能* 实现:ActionListener 接口* 作者:饶凌云*/class Click implements ActionListener Overridepublic void actionPerformed(ActionEvent e) /* 判断输入的数据是否大于 9 位,如果大于 9 位数,就会显示 最多输入 9 个字符 */if (display.getText().length() = 9) display.setText( );display.setText(最多输入 9 个字符);精品文档精品文档retur

37、n;/* 清除按钮,如果该按键按下后,显示框的内容就会清零 */ if (e.getSource() = clear) display.setText(0); else if (e.getSource() = b_1) if (display.getText().equals(0) display.setText(1);return;display.setText(display.getText() + 1); else if (e.getSource() = b_2) / display.setText(2);if (display.getText().equals(0) display.s

38、etText(2);return;精品文档精品文档display.setText(display.getText() + 2); else if (e.getSource() = b_3) if (display.getText().equals(0) display.setText(3);return;display.setText(display.getText() + 3); else if (e.getSource() = b_4) if (display.getText().equals(4) display.setText(1);return;display.setText(display.getText() + 4); else if (e.getSource() = b_5) if (display.getText().equals(5) 精品文档精品文档display.setText(1);return;display.setText(display.getText() + 5); else if (e.getSource() = b_6) if (display.getText().equals(6) display.setText(1);return;display.setText(display.getText() +

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论