用Java程序模拟windows计算器(1)

之前断断续续学了Java,现在手痒,想编点什么东西,想来想去,还是先做个计算器出来玩玩。具体实现过程如下,分享给想学编程,但是学了基础知识之后却不知道如何继续的朋友们。

首先,要编写一个计算器,需要有一个界面,只学了点语法的朋友肯定无从下手。我们就从这里开始吧。

代码如下:

package yandj.cn;
import javax.swing.JFrame;

public class CalFrame extends JFrame {
    //构造方法:构造一个计算器窗体
    public CalFrame(){
        jbInit();
    }

    //窗体初始化
    private void jbInit(){
        this.setTitle("简单计算器");//设置窗体左上角的文字
        this.setSize(450,350); //设置窗体大小
        this.setVisible(true); //设置窗体是显示的,而不是隐藏的
    }

    public static void main(String[] args){
        new CalFrame();//创建一个计算机的对象
    }
}

代码说明:

因为windows里面的计算器,可以同时打开多个,因此在上面的代码中,我将计算器设计为一个对象,每运行一次程序,就调用构造方法来构造一个计算机窗体(构造方法CalFrame()中实现),即可生成一个计算器。这个功能是在主函数中实现的:

public static void main(String[] args){
    new CalFrame();//创建一个计算机的对象
}

当主函数运行时,就调用下面的构造方法:

public CalFrame(){
    jbInit();
}

知识要点:

构造方法是一种特殊的方法。它们有一下三个特征:

  1. 构造方法必须是具备和所在类相同的名字(这里,类的名字是CalFrame,所以构造方法也是相同的名字)
  2. 构造方法没有返回值类型,甚至连void也没有。
  3. 构造方法是在创建一个对象使用new操作符时调用的。构造方法的作用是初始化对象。

构造方法具有和定义它的类完全相同的名字。和所有其他方法一样,构造方法也可以重载(也就是说,可以有多个同名的构造方法,但它们要有不同的签名),这样更易于用不同的初始数据值来构造对象。

一个类可以不定义构造方法。在这种情况下,类中隐含定义一个方法体为空的无参构造方法。这个构造方法被称为默认构造方法,当且仅当类中没有明确定义任何构造方法时才会自动提供它。

private void jbInit(){
    this.setTitle("简单计算器");//设置窗体左上角的文字
    this.setSize(450,350); //设置窗体大小
    this.setVisible(true); //设置窗体是显示的,而不是隐藏的
}

当上面的初始化窗口被调用时,就用方法里面的额三句话进行窗体的设置。

因为这个CalFrame的类,是继承自JFrame,因此this引用的是CalFrame自身,并且可以使用JFrame里面的方法。关于这几个方法的详细说明,如下:

setTitle

public void setTitle(String title)
将此窗体的标题设置为指定的字符串。
参数:
title – 要显示在窗体边框中的标题。 null 值视为空字符串 “”。
另请参见:
getTitle()

setSize

public void setSize(int width,int height)
调整组件的大小,使其宽度为 width,高度为 height。如果 width 值或 height 值小于之前调用 setMinimumSize 指定的最小        大小,则它将自动增大。

覆盖:
类 Component 中的 setSize
参数:
width – 组件的新宽度,单位是像素
height – 组件的新高度,单位是像素
从以下版本开始:
1.6
另请参见:
Component.getSize(), setBounds(int, int, int, int), setMinimumSize(java.awt.Dimension)

setVisiable

public void setVisible(boolean b)
根据参数 b 的值显示或隐藏此 Window。
覆盖:
类 Component 中的 setVisible
参数:
b – 如为 true,则使 Window 可见,否则隐藏 Window。 如果 Window 和/或其所有者还不能显示,则都不显示。在使 Window 可见之前将验证它。 如果 Window 已经可见,则此方法将 Window 带到最前面。如为 false,则隐藏此 Window、此 Window 的子组件,以及它拥有的所有子级。 调用 #setVisible(true) 可以重新使 Window 及其子组件可见。
另请参见:
Component.isDisplayable(), Component.setVisible(boolean), toFront(), dispose()

以上程序运行效果如下:

目前还只有一个框架,先做出一个大概的样子,后面的就简单了。今天就先写到这里,以后再继续。

0 Comments
Leave a Reply