A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wata 中级黑马   /  2015-1-14 17:54  /  1006 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 wata 于 2015-1-14 17:56 编辑
  1. 需求:將MyMenuTest.java文件打包成jar文件,使其双击可执行
  2. 注:MyMenuTest.java中的包名是:day22(即:package day22;)


  3. ---------------------------------------------------------------


  4. //將MyMenuTest.java文件拷贝到桌面上

  5. C:\Users\TaoWang\Desktop>javac -d . MyMenuTest.java                //將MyMenuTest.java文件编译到当前路径下(.代表当前路径)

  6. /*
  7. 在“C:\Users\TaoWang\Desktop”目录下建立一个1.txt文件
  8. 1.txt中写入的内容是:
  9. *****************************
  10. Main-Class: day22.MyMenuTest*
  11.                             *
  12. *****************************
  13. 注:1.txt文件中的信息是配置信息,告诉系统要首先执行的jar包中的day22.MyMenuTest
  14. */
  15.         
  16. C:\Users\TaoWang\Desktop>jar -cvfm my.jar 1.txt day22        //jar包名是my.jar,按照1.txt的配置信息,將day22包打包成jar包



  17. ---------------------------------------------------------------------


  18. //將MyMenuTest.java文件拷贝到桌面上

  19. C:\Users\TaoWang\Desktop>javac -d d:\ MyMenuTest.java        //將MyMenuTest.java文件编译到d:\路径下

  20. C:\Users\TaoWang\Desktop>d:                                                                //进入d盘路径

  21. /*
  22. 在“C:\”目录下建立一个1.txt文件
  23. 1.txt中写入的内容是:
  24. *****************************
  25. Main-Class: day22.MyMenuTest*
  26.                             *
  27. *****************************
  28. 注:1.txt文件中的信息是配置信息,告诉系统要首先执行的jar包中的day22.MyMenuTest
  29. */

  30. D:\>jar -cvfm my.jar 1.txt day22                                                //jar包名是my.jar,按照1.txt的配置信息,將day22包打包成jar包

复制代码


MyMenuTest.java文件:


  1. package day22;

  2. import java.awt.*;
  3. import java.awt.event.*;
  4. import java.io.*;


  5. /*
  6. * 练习:
  7. * 做个文档编辑器
  8. * 具有打开文件、保存文件、退出的功能
  9. *
  10. */

  11. public class MyMenuTest {
  12.         
  13.         private Frame f;
  14.         private TextArea ta;
  15.         private MenuBar bar;//菜单栏
  16.         private Menu fileMenu;//菜单
  17.         private MenuItem openItem, saveItem, closeItem;//菜单条目
  18.         private FileDialog openDia, saveDia;//文件对话框
  19.         private File file;
  20.         
  21.         
  22.         MyMenuTest(){
  23.                 init();
  24.         }
  25.         
  26.         public void init(){
  27.                
  28.                 //设置frame的基本属性
  29.                 f = new Frame("我的文档编辑器(Frame)");
  30.                 f.setBounds(300,100,650,600);
  31.                 f.setLayout(new BorderLayout());//注意:如果不设置布局,那么默认的也是边界布局,所以该行代码也可以不写。
  32.                
  33.                 //创建frame中的组件
  34.                 ta = new TextArea();
  35.                 bar = new MenuBar();
  36.                 fileMenu = new Menu("文件(Menu)");
  37.                 openItem = new MenuItem("打开(MenuItem)");
  38.                 saveItem = new MenuItem("保存(MenuItem)");
  39.                 closeItem = new MenuItem("退出(MenuItem)");
  40.                 openDia = new FileDialog(f, "我要打开", FileDialog.LOAD);
  41.                 saveDia = new FileDialog(f, "我要保存", FileDialog.SAVE);
  42.                 /*
  43.                  * FileDialog构造函数讲解:
  44.                  *
  45.                  * FileDialog(Dialog parent, String title, int mode):
  46.                  *
  47.                  * parent - 对话框的所有者
  48.                  * title - 对话框的标题
  49.                  * mode - 对话框的模式,FileDialog.LOAD 或 FileDialog.SAVE
  50.                  */
  51.                
  52.                 //將组件添加到frame
  53.                 f.add(ta);
  54.                 bar.add(fileMenu);
  55.                 fileMenu.add(openItem);
  56.                 fileMenu.add(saveItem);
  57.                 fileMenu.add(closeItem);
  58.                 f.setMenuBar(bar);//注意:Frame中添加菜单栏用到的是Frame类中的setMenuBar方法
  59.                
  60.                
  61.                 //调用frame的事件集
  62.                 myEvent();
  63.                
  64.                 //设置frame可见
  65.                 f.setVisible(true);
  66.         }
  67.         
  68.         private void myEvent(){
  69.                
  70.                 //將TextArea的内容保存起来的事件
  71.                 saveItem.addActionListener(new ActionListener(){
  72.                         public void actionPerformed(ActionEvent e){
  73.                                 
  74.                                 if(file==null){//如果文件已经存在就直接將文件内容保存进去即可
  75.                                         //1,显示菜单对话框
  76.                                         saveDia.setVisible(true);
  77.                                        
  78.                                         //2,通过FileDialog类的getDirectory和getFile方法获取文件的目录和文件名
  79.                                         String filePath = saveDia.getDirectory();
  80.                                         String fileName = saveDia.getFile();
  81.                                        
  82.                                         //3,將TextArea的内容保存到文件里去
  83.                                         if(filePath==null || fileName==null){//如果文件没取出来
  84.                                                 return;
  85.                                         }
  86.                                         file = new File(filePath, fileName);
  87.                                 }
  88.                                 /*
  89.                                  * 源是TextArea,目的是字符文件
  90.                                  */
  91.                                 try {
  92.                                         BufferedWriter bufw = new BufferedWriter(new FileWriter(file));
  93.                                         String text = ta.getText();
  94.                                         bufw.write(text);
  95.                                         bufw.flush();
  96.                                         bufw.close();
  97.                                 } catch (IOException ex) {
  98.                                         throw new RuntimeException("保存失败");
  99.                                 }
  100.                         }
  101.                 });
  102.                
  103.                 //打开文件事件
  104.                 openItem.addActionListener(new ActionListener(){
  105.                         public void actionPerformed(ActionEvent e){
  106.                                 
  107.                                 //显示菜单对话框
  108.                                 openDia.setVisible(true);
  109.                                 
  110.                                 //通过FileDialog类的getDirectory和getFile方法获取文件的目录和文件名
  111.                                 String filePath = openDia.getDirectory();
  112.                                 String fileName = openDia.getFile();
  113.                                 
  114.                                 //將文件的内容打印到TextArea中
  115.                                 if(filePath==null || fileName==null){//如果文件没取出来
  116.                                         return;
  117.                                 }
  118.                                 ta.setText("");//再次打开另一个文件时候,將textArea的内容置为空
  119.                                 file = new File(filePath, fileName);
  120.                                 try {
  121.                                         /*
  122.                                          * 源是字符流文件file,目的是TextArea
  123.                                          */
  124.                                         BufferedReader bufr = new BufferedReader(new FileReader(file));
  125.                                         String line = null;
  126.                                         while((line=bufr.readLine())!=null){
  127.                                                 ta.append(line+"\t\n");
  128.                                         }
  129.                                         bufr.close();
  130.                                 } catch (IOException ex) {
  131.                                         throw new RuntimeException("读取失败");
  132.                                 }
  133.                         }
  134.                 });
  135.                
  136.                 //退出(MenuItem)的事件
  137.                 closeItem.addActionListener(new ActionListener(){
  138.                         public void actionPerformed(ActionEvent e){
  139.                                 System.exit(0);
  140.                         }
  141.                 });
  142.                
  143.                 //frame的关闭事件
  144.                 f.addWindowListener(new WindowAdapter(){
  145.                         public void windowClosing(WindowEvent e){
  146.                                 System.exit(0);
  147.                         }
  148.                 });
  149.         }

  150.         public static void main(String[] args){
  151.                 new MyMenuTest();
  152.         }
  153. }
复制代码

注:MyMenuTest.java文件是GUI编程中程序

可执行的my.jar界面如下:



评分

参与人数 1技术分 +2 收起 理由
lwj123 + 2 很好

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马