《JAVA项目实战(计算器)PDF.pdf》由会员分享,可在线阅读,更多相关《JAVA项目实战(计算器)PDF.pdf(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Java面试题及其答案 (二)页脚内容 1JAVA 项目实战- 计算器一、开发环境Eclipse 集成开发环境。二、实现功能加、减、乘、除的整数运算。三、运用的知识点1、JFrame 窗体的使用2、JButton按钮的使用3、JTextFiled 输入文本框的使用4、Container 容器的使用5、监听事件的使用6、内部类7、If 语句8、Switch case 语句9、包Java面试题及其答案 (二)页脚内容 210、包的引用11 、数据类型之间的转换( String转 Int 转 Double Double.valueOf (String str ),Interger.valueOf(S
2、tring str) )四、重点知识的讲解常用窗体窗体作为 Swing应用程序中组件的承载体, 处于非常重要的位置。Swing中常用的窗体包括 JFrame和 JDialog ,本节将着重讲解这两个窗体的使用方法。1、 JFrame 窗体JFrame 窗体是一个容器,它是Swing程序中各个组件的载体,可以将JFrame 看作是承载这些 Swing组件的容器。 在开发应用程序时可以通过继承java.swing.IFrame 类创建一个窗体, 在这个窗体中添加组件,同时为组件设置事件。由于该窗体继承了JFrame 类,所以它拥有“最大化”、“最小化”和关闭等按钮。下面将详细讲解JFrame 窗体
3、在 Java应用程序中的使用方法。JFrame 在程序中的语法格式如下:JFrame jf=new JFrame(title): Container container=jf getContentPane0;参数含义如下:jf:JFrame 类的对象container:Container 类的对象,可以使用JFrame 对象调用 getContentPane ()方法获取。Java面试题及其答案 (二)页脚内容 3读者大致应该有这样一个概念,Swing组件的窗体通常与组件和容器相关,所以在 JFrame 对象创建完成后,需要调用 getContentPane ()方法将窗体转换为容器,然后在容
4、器中添加组件或设置布局管理器。通常,这个容器用来包含和显示组件。如果需要将组件添加至容器,可以使用来自Container类的add()方法进行设置。例如:container.add(new JButton( 按钮” ); /Button 按钮组件在容器添加组件后,也可以使用Container类的 remove() 方法将这些组件从容器中删除。例如container remove(new JButton(按钮” ); 下面的实例中实现了JFrame 对象创建一个窗体,并在其中添加一个组件。【例】在项目中创建Examplel类,该类继承 JFrame 类成为窗体类,在该类中创建标签组件,并添加到窗
5、体界面中。import java.awt.Color;import java.awt.Container;import 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(
6、 titile);/ 实例化一个 JFrame 对象Java面试题及其答案 (二)页脚内容 4Container container = jf.getContentPane();/ 获取一个容器JLabel jl = new JLabel( 这是一个 JFrame 窗体);/ 实例化一个 JLabel对象/ 使标签上的文字居中jl.setHorizontalAlignment(SwingConstants.CENTER);container .add(jl); / 将标签添加到容器中container .setBackground(Color.WHITE );/ 设置容器的背景颜色jf.set
7、Visible( true);/ 设置窗体可视jf.setSize(400, 400);/ 设置窗体大小/ 设置窗体关闭方式jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);public staticvoid main(String args ) / 在主方法中构造一个窗体new Example1( 创建一个 JFrame 窗体);运行本实例程序,结果如图所示。Java面试题及其答案 (二)页脚内容 5在例中, Exatplel类继承了 JFrame 类,在 Example1(String titile)方法中实例化 JFrm
8、ne 对象。 JFrame 类的常用构造方法包括以下两种形式public JFrame() 。public JFrame(String title).JFrame 类中的两种构造方法分别为无参的构造方法与有参的构造方法,第1种形式的构造方法可以创建一个初始不可见、没有标题的新窗体;第2种形式的构造方法在实例化该JFrame 对象时可以创建一个不可见但具有标题的窗体。可以使用JFrme 对像调用 show() 方法使窗体可见,但是该方法早已被新版 JDK 所弃用,通常使用setVisible(true) 方法使窗体可见。同时可以使用 setSize(int x ,int y)方法设置窗体大小,其
9、中x 与 y变量分别代表窗体的宽与高。创建窗体后,需要给予窗体一个关闭方式,可以调用setDefaultCloseOperation()方法关闭窗体。 Java为窗体关闭提供了多种方式,常用的有以下4种1、DO_NOTHING_ON_CLOSE。2、DISPOSE_ON_CLOSE。Java面试题及其答案 (二)页脚内容 63、HIDE_ON_CLOSE。4、EXTT_ON_CLOSE。第 1种窗体退出方式代表什么都不做就将窗体关闭;第2种退出方式则代表任何注册监听程序对象后会自动隐藏并释放窗体;第3种方式表示隐藏窗口的默认窗口关闭;第4种退出方式表示退出应用程序默认窗口关闭。2、JDialo
10、g窗体JDialog窗体是 Swing组件中的对话框,它继承了AWT 组件 java.awtDialog类。JDialog窗体的功能是从一个窗体中弹出另一个窗体,就像是在使用IE浏览器时弹出的确定对话框一样。 JDialog窗体实质上就是另一种类型的窗体,它与JFrame 窗体类似,在使用时也需要调用getContentPane() 方法将窗体转换为容器,然后在容器中设置窗体的特性。在应用程序中创建JDialog窗体需要实例化 JDialog类,通常使用以下几个JDialog类的构造方法。public JDialog(): 创建一个没有标题和父窗体的对话框。public JDialog(Fra
11、me f): 创建一个指定父窗体的对话框,但该窗体没有标题。public JDialog(Frame f,boolean model): 创建一个指定类型的对话框,并指定父窗体,但该窗体没有指定标题。public JDialog(Frame f ,String title):创建一个指定标题和父窗体的对话框。public JDialog(Frame f String titleboolean model):创建一个指定标题、窗体和模式的对话框。下面来看一个实例,该实例主要实现单击JFrme 窗体中的按钮后,弹出一个对话框窗体。Java面试题及其答案 (二)页脚内容 7【例】在项目中创建 MyJ
12、Dialog 类,该类继承 JDialog窗体,并在窗口中添加按钮, 当用户点击该按钮后,将弹出一个对话框窗体。本实例代码如下:import java.awt.Container;import 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
13、;public class MyFrame extends JFramepublic MyFrame()Container container = getContentPane(); / 创建一个容器container .setLayout( null);JLabel jl = new JLabel( 这是一个 JFrame 窗体);/ 在窗体中设置标签/ 使标签上的文字居中jl.setHorizontalAlignment(SwingConstants.CENTER);Java面试题及其答案 (二)页脚内容 8container .add(jl);JButton bl = new JButt
14、on( 弹出对话框 );/ 实例化一个按钮bl.setBounds(10, 10, 100, 21);container .add(bl); / 将按钮添加到容器中setSize(400,400); / 设置窗体的大小bl.addActionListener( new ActionListener() / 为按钮添加鼠标点击事件Overridepublicvoid actionPerformed(ActionEvent e) / 使 MyDialog 窗体可见new MyDialog(MyFrame.this).setVisible( true););public staticvoid mai
15、n(String args ) Java面试题及其答案 (二)页脚内容 9new MyFrame().setVisible(true);class MyDialog extends JDialogpublic MyDialog(MyFrame frame)/ 实例化一个 JDialog对象,指定对话框的父窗体、窗体标题和类型super (frame ,第一个 Dialog窗体 ,true);Container container = getContentPane(); / 创建一个容器container .add(new JLabel( 这是一个对话框 );/ 在容器中添加标签setBound
16、s(120,120,100,100);/ 设置对话框的大小运行本实例,结果如图所示。Java面试题及其答案 (二)页脚内容 10在本实例中,为了使对话框在父窗体弹出,定义了一个JFrame 窗体,首先在该窗体中定义一个按钮,然后为此按钮添加一个鼠标单击监听事件,这里使用 new MyJDialog().setVisible(true)语句使对话框窗体可见,这样就实现了用户单击该按钮后弹出对话框的功能。在 MyJDialog 类中,由于它继承了JDialog类,所以可以在构造方法中使用super关键字调用 JDialog构造方法。在这里使用了public JDialog(Frame f ,Str
17、ing title , boolean model) 这种形式的构造方法,相应地设置了自定义的JFrame 窗体以及对话框的标题和窗体类型。本实例代码中可以看到,JDialog窗体与 JFrame 窗体形式基本相同,甚至在设置窗体的特性时调用的方法名称都基本相同,如设置窗体大小、窗体关闭状态等。计算器Java面试题及其答案 (二)页脚内容 11package com.rakey.ui;import java.awt.Color;import java.awt.Container;import java.awt.Font;import java.awt.event.ActionEvent;imp
18、ort java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JTextField;Java面试题及其答案 (二)页脚内容 12import javax.swing.WindowConstants;public class UI private JButton clear;/ 清除按钮( AC )private JButton backspace ;/ 退格键private JButton zhengfuhao ;/ +/-键private JB
19、utton 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;/ 按键 5private JButton b_6;/ 按键 6private JButton b_jian;/ 减号键private JButton b_1;/ 按键 1private JButton b_2;/ 按键 2Java面试题及其答案 (二)页
20、脚内容 13private 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;public UI() / 1: 新建一个 JFrame 对象为 jfJFrame jf = new JFrame( 计算器 );/ 2: 设置布局jf.setLayout( null);/ 3: 得到一个容器 co
21、ntainerContainer container = jf.getContentPane();/ 改变容器 (container) 的背景颜色container .setBackground(Color.YELLOW);/ 新建一个 JTextField 对象display = new JTextField( 0 );Java面试题及其答案 (二)页脚内容 14/ 设置 JTextField 在 container当中的位置和 JTextField 的宽度,高度display .setBounds(10, 10, 310, 100);/ 设置字体的大小和字体display .setFont
22、( new Font( 楷体, Font. BOLD , 40);/ 设置字体的颜色display .setForeground( new Color(255, 0, 0);/ 设置字体的显示位置(从最右边开始显示)display .setHorizontalAlignment(JTextField.RIGHT );/ 把 JTextField 放到 container容器当中container .add(display);/ 新建一个 JButton对象clear = new JButton( AC);/ 设置 JButton在 container当中的位置和 JButton的宽度,高度cl
23、ear.setBounds(10, 115, 70, 40);/ 把 JButton放到 container容器当中container .add(clear);clear.addActionListener( new Click();/ 新建一个 JButton对象Java面试题及其答案 (二)页脚内容 15backspace = new JButton( );/ 设置 JButton在 container当中的位置和 JButton的宽度,高度backspace .setBounds(90, 115, 70, 40);/ 把 JButton放到 container容器当中container
24、.add(backspace );backspace .addActionListener( new Click();/ 新建一个 JButton对象zhengfuhao = new JButton( +/- );/ 设置 JButton在 container当中的位置和 JButton的宽度,高度zhengfuhao .setBounds(170, 115, 70, 40);/ 把 JButton放到 container容器当中container .add(zhengfuhao );zhengfuhao .addActionListener( new Click();/ 新建一个 JButt
25、on对象chuhao = new JButton( );/ 设置 JButton在 container当中的位置和 JButton的宽度,高度Java面试题及其答案 (二)页脚内容 16chuhao .setBounds(250, 115, 70, 40);/ 把 JButton放到 container容器当中container .add(chuhao );chuhao .addActionListener( new Click();/ 新建一个 JButton对象b_7 = new JButton( 7 );/ 设置 JButton在 container当中的位置和 JButton的宽度,高
26、度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);/ 把 JButton放到 container容器当中container .add(b_8);b_8.addActionListener( new
27、 Click();Java面试题及其答案 (二)页脚内容 17/ 新建一个 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对象b_cheng = new JButton( );/ 设置 JButton在 container当中的位置和 JB
28、utton的宽度,高度b_cheng .setBounds(250, 165, 70, 40);/ 把 JButton放到 container容器当中container .add(b_cheng );b_cheng .addActionListener( new Click();/ 新建一个 JButton对象b_4 = new JButton( 4 );Java面试题及其答案 (二)页脚内容 18/ 设置 JButton在 container当中的位置和 JButton的宽度,高度b_4.setBounds(10, 215, 70, 40);/ 把 JButton放到 container容器
29、当中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();/ 新建一个 JButton对象b_6 = new JButton( 6 );/ 设置 JBut
30、ton在 container当中的位置和 JButton的宽度,高度b_6.setBounds(170, 215, 70, 40);/ 把 JButton放到 container容器当中container .add(b_6);Java面试题及其答案 (二)页脚内容 19b_6.addActionListener( new Click();/ 新建一个 JButton对象b_jian = new JButton( );/ 设置 JButton在 container当中的位置和 JButton的宽度,高度b_jian.setBounds(250, 215, 70, 40);/ 把 JButton放
31、到 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 .addActionListener( new Click();/ 新建一个 JButton对象Java面试题及其答案
32、(二)页脚内容 20b_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的宽度,高度b_3.setBounds(170, 265, 70, 4
33、0);/ 把 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容器当中Java面试题及其答案 (二)页脚内容 21container .add(b_jia);b_jia.addActionListener( new
34、 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当中的位置和 JButton的宽度,高度b_dian.set
35、Bounds(170, 315, 70, 40);/ 把 JButton放到 container容器当中container .add(b_dian);b_dian.addActionListener( new Click();/ 新建一个 JButton对象b_deng = new JButton( = );Java面试题及其答案 (二)页脚内容 22/ 设置 JButton在 container当中的位置和 JButton的宽度,高度b_deng .setBounds(250, 315, 70, 40);/ 把 JButton放到 container容器当中container .add(b_
36、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 ;/ 存放计算符号/* 类名: Click * 功能:监听各个按键是否按下,
37、处理各个按键按下的内容和相关的功能Java面试题及其答案 (二)页脚内容 23* 实现: ActionListener 接口* 作者:饶凌云*/class Click implements ActionListener Overridepublic void actionPerformed(ActionEvent e) /* 判断输入的数据是否大于9位,如果大于 9位数,就会显示最多输入 9个字符 */if (display .getText().length() = 9) display .setText( );display .setText( 最多输入 9个字符 );return;/*
38、清除按钮,如果该按键按下后,显示框的内容就会清零*/if (e.getSource() = clear) display .setText( 0 ); elseif (e.getSource() = b_1) if (display .getText().equals( 0 ) display .setText( 1);Java面试题及其答案 (二)页脚内容 24return;display .setText( display .getText() + 1); elseif (e.getSource() = b_2) / display.setText(2);if (display .getT
39、ext().equals( 0 ) display .setText( 2 );return;display .setText( display .getText() + 2 ); elseif (e.getSource() = b_3) if (display .getText().equals( 0 ) display .setText( 3 );return;display .setText( display .getText() + 3 ); elseif (e.getSource() = b_4) if (display .getText().equals( 4 ) Java面试题及
40、其答案 (二)页脚内容 25display .setText( 1);return;display .setText( display .getText() + 4 ); elseif (e.getSource() = b_5) if (display .getText().equals( 5 ) display .setText( 1);return;display .setText( display .getText() + 5 ); elseif (e.getSource() = b_6) if (display .getText().equals( 6 ) display .setTe
41、xt( 1);return;display .setText( display .getText() + 6 ); elseif (e.getSource() = b_7) if (display .getText().equals( 7 ) Java面试题及其答案 (二)页脚内容 26display .setText( 1);return;display .setText( display .getText() + 7 ); elseif (e.getSource() = b_8) if (display .getText().equals( 8 ) display .setText( 1)
42、;return;display .setText( display .getText() + 8 ); elseif (e.getSource() = b_9) if (display .getText().equals( 9 ) display .setText( 1);return;Java面试题及其答案 (二)页脚内容 27display .setText( display .getText() + 9 ); elseif (e.getSource() = b_0) if (display .getText().equals( 0 ) display .setText( 0 );retu
43、rn;display .setText( display .getText() + 0 ); elseif (e.getSource() = b_deng ) shu_2 = display .getText();display .setText( );int shu1 ;int shu2 ;shu1 = Integer.valueOf (shu_1 );shu2 = Integer.valueOf (shu_2 );switch (fuhao) case+ :shu1 += shu2 ;Java面试题及其答案 (二)页脚内容 28break;case:shu1 *= shu2 ;break;
44、case:shu1 -= shu2 ;break;case:shu1 /= shu2 ;break;display .setText(String. valueOf (shu1 );shu_1 = 0;shu_2 = 0 ; elseif (e.getSource() = b_dian) display .setText( . ); elseif (e.getSource() = b_jia) shu_1 = display .getText();Java面试题及其答案 (二)页脚内容 29display .setText( 0 );fuhao = + ; elseif (e.getSource() = chuhao ) shu_1 = display .getText();display .setText( 0 );fuhao = ; elseif (e.getSource() = b_cheng ) shu_1 = display .getText();display .setText( 0 );fuhao = ; elseif (e.getSource() = b_jian) shu_1 = display .getText();display .setText( 0 );fuhao = ;Java面试题及其答案 (二)页脚内容 30