用Java程序模拟windows计算器(3)——制作菜单栏

因为有本职工作,之前一直没有时间,今天好不容易空下来一天,所以就来更新java编程的内容,希望大家多多见谅。

到目前为止,我们已经有了一个文件名为CalFrame.java的文档,这个文档里面我们编写计算器外观的代码。现如今拥有的代码如下:

package yandj.cn;

import java.awt.Font;
import java.awt.Image;
import java.awt.Toolkit;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

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

    //窗体初始化
    private void jbInit(){
    ImageIcon icon=new ImageIcon("./src/img/Calculator.png");
    System.out.println(icon.getImage());
    //Image icon=Toolkit.getDefaultToolkit().getImage(".\\src\\img\\Calculator.png");
    this.setIconImage(icon.getImage());
    this.setTitle("计算器");//设置窗体左上角的文字
    this.setSize(230,320); //设置窗体大小
    this.setVisible(true); //设置窗体是显示的,而不是隐藏的
}

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

现在我们就来做菜单栏。我们现在jbInit()方法下面新建一个createMenuBar()的方法,代码如下:

// 创建菜单栏的方法
private void createMenuBar() {
    JMenuBar menubar = new JMenuBar();  //创建新的菜单栏
    setJMenuBar(menubar);               //设置此窗体的菜单栏。
    JMenu menu1 = new JMenu("查看(V)"); //构造一个新 JMenu,用提供的字符串作为其文本。 menubar.add(menu1); //将指定的菜单追加到菜单栏的末尾。 }

相信大部分同学对于上面的代码应该可以理解接受,我就不详细展开了。

但是最重要的是记得:在jbInit()方法的最后要加入createMenubar()的方法的引用,并且这个方法必须放在this.setVisible(true)语句的前面,否则菜单栏是显示不出来的额(不要问我是这么知道的,我被这个坑了好久)

最终的运行结果如下:

接下来就是体力劳动,按照windows的计算器的模样将剩下的编写完整。代码如下:

// 创建菜单栏的方法
    private void createMenuBar() {
        JMenuBar menubar = new JMenuBar();//创建新的菜单栏
        setJMenuBar(menubar); //设置此窗体的菜单栏
        JMenu menuview = new JMenu("查看(V)");
        //构造一个新 JMenu,用提供的字符串作为其文本。
        JMenu menuedit = new JMenu("编辑(E)");
        JMenu menuhelp = new JMenu("帮助(H)");
        menubar.add(menuview); //将指定的菜单追加到菜单栏的末尾。
        menubar.add(menuedit);
        menubar.add(menuhelp);
    }

windows的菜单中还有下拉列表,我们在这里也给它添加进去。使用的语句是

JMenuItem menuviewt = new JMenuItem(“标准型(T)                Alt+1”);

menuviewt.add(menuviewt);

JMenuItem方法创建了一个列表内容,而后面menuviewt.add(menuviewt)是将创建的列表加入到我们的查看菜单里面。然后根据windows的默认计算器,我们将代码补齐:

private void createMenuBar() {
JMenuBar menubar = new JMenuBar();//创建新的菜单栏
setJMenuBar(menubar); //设置此窗体的菜单栏
JMenu menuview = new JMenu("查看(V)");//构造一个新 JMenu,用提供的字符串作为其文本。
JMenu menuedit = new JMenu("编辑(E)");
JMenu menuhelp = new JMenu("帮助(H)");
menubar.add(menuview); //将指定的菜单追加到菜单栏的末尾。
menubar.add(menuedit);
menubar.add(menuhelp);
JMenuItem menuviewt = new JMenuItem("标准型(T) Alt+1");
JMenuItem menuviews = new JMenuItem("科学型(S) Alt+2");
JMenuItem menuviewp = new JMenuItem("程序员(P) Alt+3");
JMenuItem menuviewa = new JMenuItem("统计信息(A) Alt+4");
JMenuItem menuviewy = new JMenuItem("历史记录(Y) Ctrl+H");
JMenuItem menuviewi = new JMenuItem("数字分组(I) ");
JMenuItem menuviewb = new JMenuItem("基本(B) Ctrl+F4");
JMenuItem menuviewu = new JMenuItem("单位转换(U) Ctrl+U");
JMenuItem menuviewd = new JMenuItem("日期计算(D) Ctrl+E");
JMenuItem menuvieww = new JMenuItem("工作表(W) ");


JMenuItem menueditc = new JMenuItem("复制(C) Ctrl+C");
JMenuItem menueditp = new JMenuItem("粘贴(P) Ctrl+V");
JMenuItem menuedith = new JMenuItem("历史记录(H) ");

JMenuItem menuhelpv = new JMenuItem("查看帮助(V) F1");
JMenuItem menuhelpa = new JMenuItem("关于计算器(A) ");

menuview.add(menuviewt);
menuview.add(menuviews);
menuview.add(menuviewp);
menuview.add(menuviewa);
menuview.add(menuviewy);
menuview.add(menuviewi);
menuview.add(menuviewb);
menuview.add(menuviewu);
menuview.add(menuviewd);
menuview.add(menuvieww);
menuedit.add(menueditc);
menuedit.add(menueditp);
menuedit.add(menuedith);

menuhelp.add(menuhelpv);
menuhelp.add(menuhelpa);

}

因为还存在二级菜单,而今天接下来还有事情,今天就更新到这里,下次有空我会尽快更新。

 

 

0 Comments
Leave a Reply