初学JAVA之三

 

1、编写一个简单的文本编辑器,要求:具有打开、保存、新建,粘贴、复制等功能;具有一个工具条。

 

1.1、程序源码(参见menu.java):

 

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.io.*;

import java.net.URL;

 

public class menu extends JFrame implements ActionListener

{   

   public menu()

      {

      setDefaultCloseOperation(EXIT_ON_CLOSE);//程序退出

      JMenuBar menuBar1 = new JMenuBar();//生成实例

      JMenu menuFile = new JMenu("文件(File)");//菜单实例

      JMenu menuEdit = new JMenu("编辑(E)");

         JTable jTable = new JTable();//实例化表格

        JToolBar toolBar = new JToolBar("mytoolbar!");//工具条实例

        toolBar.setVisible(true);//设定可见

     

        //定义备用的快捷键

      menuFile.setMnemonic(KeyEvent.VK_F);

      menuEdit.setMnemonic(KeyEvent.VK_E);

       

        //menuFile的菜单项实例

      String file [] ={"新建","打开","保存","另存为","","退出"};

      KeyStroke keyStroke1[]={null,

               KeyStroke.getKeyStroke(KeyEvent.VK_O,                  InputEvent.CTRL_MASK),

               null,

               null,

               null,

               KeyStroke.getKeyStroke(KeyEvent.VK_E,                  InputEvent.CTRL_MASK)

                 };

 

         //menuEdit的菜单项实例

      String edit [] ={"复制","粘贴"};

      KeyStroke keyStroke2[]={

               KeyStroke.getKeyStroke(KeyEvent.VK_C,                  InputEvent.CTRL_MASK),

               KeyStroke.getKeyStroke(KeyEvent.VK_V,                  InputEvent.CTRL_MASK),  

                 }; 

      

        //调用createMenu函数

      createMenu(menuBar1,menuFile,file,keyStroke1);

      createMenu(menuBar1,menuEdit,edit,keyStroke2);

 

      setJMenuBar(menuBar1);//放置菜单条

      setBounds(200,200,400,300);//设定位置

    

        //设置工具条上的第1个按钮“新建”

        JButton jbtn1 = new JButton();

        jbtn1.setText("新建");

        jbtn1.addMouseListener(new MouseAdapter() {

 

            public void mouseClicked(MouseEvent e) {

                System.out.println("you hava clicked "

                        + ((JButton) e.getSource()).getText());

            }

        });

       

        //设置工具条上的第2个按钮“打开”

        JButton jbtn2 = new JButton();

        jbtn2.setText("打开");

        jbtn2.addMouseListener(new MouseAdapter() {

 

            public void mouseClicked(MouseEvent e) {

                System.out.println("you hava clicked "

                        + ((JButton) e.getSource()).getText());

            }

        });

 

        //设置工具条上的第3个按钮“保存”

        JButton jbtn3 = new JButton();

        jbtn3.setText("保存");

        jbtn3.addMouseListener(new MouseAdapter() {

 

            public void mouseClicked(MouseEvent e) {

                System.out.println("you hava clicked "

                        + ((JButton) e.getSource()).getText());

            }

        });

 

        //设置工具条上的第4个按钮“另存为”

        JButton jbtn4 = new JButton();

        jbtn4.setText("另存为");

        jbtn4.addMouseListener(new MouseAdapter() {

 

            public void mouseClicked(MouseEvent e) {

                System.out.println("you hava clicked "

                        + ((JButton) e.getSource()).getText());

            }

        });

 

         //设置工具条上的第5个按钮“退出”

        JButton jbtn5 = new JButton();

        jbtn5.setText("退出");

        jbtn5.addMouseListener(new MouseAdapter() {

 

            public void mouseClicked(MouseEvent e) {

                System.out.println("you hava clicked "

                        + ((JButton) e.getSource()).getText());

            }

        });

 

        //设置工具条上的第6个按钮“复制”

        JButton jbtn6 = new JButton();

        jbtn6.setText("复制");

        jbtn6.addMouseListener(new MouseAdapter() {

 

            public void mouseClicked(MouseEvent e) {

                System.out.println("you hava clicked "

                        + ((JButton) e.getSource()).getText());

            }

        });

       

        //设置工具条上的第7个按钮 “粘贴”

        JButton jbtn7 = new JButton();

        jbtn7.setText("粘贴");

        jbtn7.addMouseListener(new MouseAdapter() {

 

            public void mouseClicked(MouseEvent e) {

                System.out.println("you hava clicked "

                        + ((JButton) e.getSource()).getText());

            }

        });

 

 

        //工具条添加按钮

        toolBar.add(jbtn1);

        toolBar.add(jbtn2);

        toolBar.add(jbtn3);

        toolBar.add(jbtn4);

        toolBar.add(jbtn5);

        toolBar.add(jbtn6);

        toolBar.add(jbtn7);

        this.getContentPane().add(toolBar, BorderLayout.NORTH);//添加工具条  

 

   }

 

   //createMenu函数

      public void  createMenu(JMenuBar grandparent,

                             JMenu parent,

                             String[] items,

                             KeyStroke [] al)

      {

       for (int i = 0; i < items.length; i++)

          {

               JMenuItem r = null;

               if (items[i] == "")

               {

               parent.addSeparator();

               }

               else

              {

                r=new JMenuItem(items[i]);

                if (al[i]!=null)

                 {

                r.setAccelerator(al[i]);

                 }

                 r.addActionListener(this);

                 parent.add(r);

              }

        }//for循环结束 

    grandparent.add(parent);    

   }//createMenu函数结束

            

              

   public void actionPerformed(ActionEvent e)

   {

      String arg = e.getActionCommand();

      System.out.println(arg);

      if(arg.equals("退出"))

         System.exit(0);

   }

 

 //main函数

public static void main(String[] args)

{

   menu tt = new menu();

   tt.show();

   JFrame.setDefaultLookAndFeelDecorated(true);

}

 

}//程序结束

 

 

1.2、程序运行结果:

 

D:/jdk/xi>javac menu.java

注意menu.java 使用或覆盖了已过时的 API

注意要了解详细信息请使用 -Xlint:deprecation 重新编译。

 

D:/jdk/xi>java menu

you hava clicked 新建

you hava clicked 打开

you hava clicked 另存为

you hava clicked 退出

you hava clicked 复制

you hava clicked 粘贴

只是有点可惜,没有实现“新建”、“打开”··键的功能,~~~~(>_<)~~~~

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值