1、JAVA 项目实战-计算器一、开发环境Eclipse 集成开发环境。2、实现功能加、减、乘、除的整数运算。3、运用的知识点1、JFrame 窗体的使用2、JButton 按钮的使用3、JTextFiled输入文本框的使用4、Container 容器的使用5、监 听事件的使用6、内部类7、If语句8、Switch case 语句9、包10、包的引用11、数据类 型之间的转换 (String 转 Int转 Double Double.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 在程序中的语 法格式如下:JFram
3、e jf=new JFrame(title):Container container=jf getContentPane0;参数含义如下:jf: JFrame类 的对象container:Container类的对象,可以使用 JFrame对象调用getContentPane()方法获取。读者大致应该有这样一个概念,Swing 组件的窗体通常与组件和容器相关,所以在 JFrame对象创 建完成后,需要调用 getContentPane()方法将窗体转换为容器,然后在容器中添加组件或设置布局管理器。通常,这个容器用来包含和显示组件。如果需要将组件添加至容器,可以使用来自Container类的add
4、()方法 进行设置。例如:container.add(new JButton(“按钮”) ); /Button 按钮组件在容器添加组件后,也可以使用 Container类的 remove()方法将这些组件从容器中删除。例如container remove(new JButton(“按钮”);下面的实例中实现了 JFrame对象创建一个窗体,并在其中添加一个 组件。【例】在项目中创建 Examplel类,该类继承 JFrame类成为窗体类,在该类中创建标签组件,并添加到窗体界面中。import java.awt.Color;import java.awt.Container;import jav
5、ax.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.getContentPane()
6、;/获取一个容器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.setDefaultCloseOperation(WindowCo
7、nstants.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类中的两种构造方法分 别为无参的构造方法与有参的构造方法,第 1 种形式的构造方法
8、可以创建一个初始不可 见、没有标题的新窗体;第 2种形式的构造方法在实例化该 JFrame对象 时可以创建一个不可见但具有标题的窗体。可以使用 JFrme对像调用 show()方法使窗体可见,但是该方法早已被新版 JDK 所弃用,通常使用 setVisible(true)方法使窗体可见。同时可以使用 setSize(int x,int y)方法设置窗体大小,其中 x 与y变 量分别代表窗体的 宽与高。创建窗体后,需要给予窗体一个关闭方式,可以调用setDefaultCloseOperation()方法关闭窗体。Java 为窗体关闭提供了多种方式,常用的有以下 4 种1、DO_NOTHING_O
9、N_CLOSE。2、DISPOSE_ON_CLOSE。3、HIDE_ON_CLOSE。4、EXTT_ON_CLOSE。第 1 种窗体退出方式代表什么都不做就将窗体关闭;第 2 种退出方式则代表任何注册监听程序对象后会自动隐藏并释放窗体;第 3 种方式表示隐藏窗口的默认窗口关闭;第 4 种退出方式表示退出 应用程序默认窗口关闭。2、JDialog 窗体JDialog 窗体是 Swing组件中的对话框,它继承了 AWT组件java.awtDialog类。JDialog 窗体的功能是从一个窗体中 弹出另一个窗体,就像是在使用IE浏览器时弹 出的确定 对话框一样。JDialog 窗体实质上就是另一种类
10、型的窗体,它与 JFrame 窗体 类似,在使用时也需要 调用 getContentPane()方法将窗体转换为容器,然后在容器中设置窗体的特性。在应用程序中创建 JDialog 窗体需要 实例化 JDialog类,通常使用以下几个 JDialog类的构造方法。public JDialog():创建一个没有标题和父窗体的对话框。public JDialog(Frame f): 创建一个指定父窗体的对话框,但该窗体没有标题。public JDialog(Frame f,boolean model):创建一个指定类型的对话框,并指定父窗体,但该窗体没有指定标题。public JDialog(Fra
11、me f,String title):创建一个指定标题和父窗体的对话框。public JDialog(Frame f String titleboolean model):创建一个指定标题、窗体和模式的对话框。下面来看一个实例,该实例主要实现单击 JFrme 窗体中的按钮后,弹出一个对话框窗体。【例】在项目中创建 MyJDialog 类,该类继承 JDialog 窗体,并在窗口中添加按钮,当用户点击该按钮后,将弹出一个对话框窗体。本实例代码如下:import java.awt.Container;import java.awt.event.ActionEvent;import java.awt
12、.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 = getContentPane();/创建一个容器container.setLayout(null);JLabel jl = new
13、 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.addActionListener(new ActionListener()/为按钮添加鼠标点击事件Overri
14、depublic 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)/实例化一个 JDialog对象,指定对话框的父窗体、窗体标题和类型super(frame ,“第一个 Dialog 窗体“, t
15、rue);Container container = getContentPane();/创建一个容器container.add(new JLabel(“这是一个 对话框“);/在容器中添加标签setBounds(120,120,100,100);/设置对话框的大小运行本实例,结果如图所示。在本实例中,为了使对话框在父窗体弹出,定义了一个 JFrame 窗体,首先在该窗体中定义一个按钮,然后为此按钮添加一个鼠标单击监听事件,这里使用 new MyJDialog().setVisible(true)语句使对话框窗体可见,这样就实现了用户单击该按钮后弹出对话框的功能。在 MyJDialog 类中,由于它继承了 JDialog 类,所以可以在构造方法中使用 super 关键字调用 JDialog 构造方法。在这里使用了 public JDialog(Frame f,String title, boolean model)这种形式的构造方法,相应地设置了自定义的 JFrame 窗体以及对话框的标题和窗体类型。本实例代码中可以看到,JDialog 窗体与 JFrame 窗体形式基本相同,甚至在设置窗体的特性时调用的方法名称都基本相同,如设置窗体大小、窗体关闭状态等。 计算器