QQ登录

只需一步,快速开始

登录 | 立即注册 | 找回密码
查看: 133|回复: 0

[系列教程] 学习日志记录小程序完结与程序打包成exe文件

[复制链接]
最佳答案
23 
累计签到:397 天
连续签到:145 天
发表于 2017-9-10 06:17:41 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x


根据昨天编写的程序再进一步补充,NewFrame.java文件的代码如下:
  1. package javaapplication3;

  2. import java.awt.List;
  3. import java.io.BufferedReader;
  4. import java.io.FileNotFoundException;
  5. import java.io.FileReader;
  6. import java.io.FileWriter;
  7. import java.io.IOException;
  8. import java.util.ArrayList;
  9. import java.util.Date;
  10. import java.util.logging.Level;
  11. import java.util.logging.Logger;

  12. /**
  13. *
  14. * @author xinwei
  15. */
  16. public class NewJFrame extends javax.swing.JFrame {

  17.     /**
  18.      * Creates new form NewJFrame
  19.      */
  20.     public NewJFrame() {
  21.         initComponents();
  22.     }

  23.     /**
  24.      * This method is called from within the constructor to initialize the form.
  25.      * WARNING: Do NOT modify this code. The content of this method is always
  26.      * regenerated by the Form Editor.
  27.      */
  28.     @SuppressWarnings("unchecked")
  29.     // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
  30.     private void initComponents() {

  31.         jPanel1 = new javax.swing.JPanel();
  32.         jLabel1 = new javax.swing.JLabel();
  33.         jTextField1 = new javax.swing.JTextField();
  34.         jLabel2 = new javax.swing.JLabel();
  35.         jTextField2 = new javax.swing.JTextField();
  36.         jLabel3 = new javax.swing.JLabel();
  37.         jTextField3 = new javax.swing.JTextField();
  38.         jButton1 = new javax.swing.JButton();
  39.         jButton2 = new javax.swing.JButton();
  40.         jLabel4 = new javax.swing.JLabel();
  41.         jLabel5 = new javax.swing.JLabel();

  42.         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

  43.         jPanel1.setBackground(new java.awt.Color(153, 255, 51));
  44.         jPanel1.setName(""); // NOI18N

  45.         jLabel1.setText("学习目的");

  46.         jLabel2.setText("学习时间");

  47.         jLabel3.setText("学习语言");

  48.         jButton1.setText("保存");
  49.         jButton1.addActionListener(new java.awt.event.ActionListener() {
  50.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  51.                 jButton1ActionPerformed(evt);
  52.             }
  53.         });

  54.         jButton2.setText("退出");
  55.         jButton2.addActionListener(new java.awt.event.ActionListener() {
  56.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  57.                 jButton2ActionPerformed(evt);
  58.             }
  59.         });

  60.         jLabel4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/javaapplication3/logo.png"))); // NOI18N
  61.         jLabel4.setText("鱼C工作室");

  62.         jLabel5.setToolTipText("");

  63.         javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
  64.         jPanel1.setLayout(jPanel1Layout);
  65.         jPanel1Layout.setHorizontalGroup(
  66.             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  67.             .addGroup(jPanel1Layout.createSequentialGroup()
  68.                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  69.                     .addGroup(jPanel1Layout.createSequentialGroup()
  70.                         .addGap(68, 68, 68)
  71.                         .addComponent(jButton1))
  72.                     .addGroup(jPanel1Layout.createSequentialGroup()
  73.                         .addGap(44, 44, 44)
  74.                         .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  75.                             .addComponent(jLabel2)
  76.                             .addComponent(jLabel1)
  77.                             .addComponent(jLabel3))))
  78.                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  79.                     .addGroup(jPanel1Layout.createSequentialGroup()
  80.                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 134, Short.MAX_VALUE)
  81.                         .addComponent(jButton2)
  82.                         .addGap(92, 92, 92))
  83.                     .addGroup(jPanel1Layout.createSequentialGroup()
  84.                         .addGap(18, 18, 18)
  85.                         .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  86.                             .addComponent(jTextField2)
  87.                             .addComponent(jTextField3)
  88.                             .addComponent(jTextField1)
  89.                             .addComponent(jLabel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  90.                         .addContainerGap())))
  91.             .addGroup(jPanel1Layout.createSequentialGroup()
  92.                 .addGap(76, 76, 76)
  93.                 .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 283, javax.swing.GroupLayout.PREFERRED_SIZE)
  94.                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  95.         );
  96.         jPanel1Layout.setVerticalGroup(
  97.             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  98.             .addGroup(jPanel1Layout.createSequentialGroup()
  99.                 .addGap(64, 64, 64)
  100.                 .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 109, javax.swing.GroupLayout.PREFERRED_SIZE)
  101.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 39, Short.MAX_VALUE)
  102.                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  103.                     .addComponent(jLabel1)
  104.                     .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  105.                 .addGap(18, 18, 18)
  106.                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  107.                     .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  108.                     .addComponent(jLabel2))
  109.                 .addGap(18, 18, 18)
  110.                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  111.                     .addComponent(jLabel3)
  112.                     .addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  113.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  114.                 .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)
  115.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  116.                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  117.                     .addComponent(jButton1)
  118.                     .addComponent(jButton2))
  119.                 .addGap(59, 59, 59))
  120.         );

  121.         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  122.         getContentPane().setLayout(layout);
  123.         layout.setHorizontalGroup(
  124.             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  125.             .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  126.         );
  127.         layout.setVerticalGroup(
  128.             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  129.             .addGroup(layout.createSequentialGroup()
  130.                 .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  131.                 .addGap(0, 0, Short.MAX_VALUE))
  132.         );

  133.         pack();
  134.     }// </editor-fold>                        

  135.     private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
  136.         // TODO add your handling code here:
  137.         try{
  138.         f =new FileWriter("./data.txt",true);
  139.         Date d = new Date();
  140.         String s = jTextField1.getText()+"\r\n"+jTextField2.getText()+"\r\n"+jTextField3.getText()+"\r\n"+d.toString()+"\r\n";      
  141.         f.write(s);
  142.         }catch(Exception e){
  143.             System.out.println(e);
  144.         }finally{
  145.             try{
  146.                 f.close();
  147.             }catch(Exception e){
  148.             System.out.println(e);
  149.             }
  150.     }
  151.             read();   
  152.     }                                       

  153.     private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
  154.         // TODO add your handling code here:
  155.         System.exit(0);
  156.     }                                       

  157.     /**
  158.      * @param args the command line arguments
  159.      */
  160.     public static void main(String args[]) {
  161.         /* Set the Nimbus look and feel */
  162.         //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
  163.         /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
  164.          * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
  165.          */
  166.         try {
  167.             for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
  168.                 if ("Nimbus".equals(info.getName())) {
  169.                     javax.swing.UIManager.setLookAndFeel(info.getClassName());
  170.                     break;
  171.                 }
  172.             }
  173.         } catch (ClassNotFoundException ex) {
  174.             java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  175.         } catch (InstantiationException ex) {
  176.             java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  177.         } catch (IllegalAccessException ex) {
  178.             java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  179.         } catch (javax.swing.UnsupportedLookAndFeelException ex) {
  180.             java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  181.         }
  182.         //</editor-fold>

  183.         /* Create and display the form */
  184.         java.awt.EventQueue.invokeLater(new Runnable() {
  185.             public void run() {
  186.                 new NewJFrame().setVisible(true);               
  187.             }
  188.         });
  189.     }
  190.     void read() {
  191.         String s=jLabel2.getText()+jLabel3.getText()+jLabel4.getText();           
  192.         array.add(s);           
  193.         jLabel5.setText("已经保存成功,这次一共保存了"+array.size()*3+"条数据");
  194.    
  195.     }
  196.     private FileWriter f;
  197.     private ArrayList<String> array=new ArrayList<String>();
  198.     // Variables declaration - do not modify                     
  199.     private javax.swing.JButton jButton1;
  200.     private javax.swing.JButton jButton2;
  201.     private javax.swing.JLabel jLabel1;
  202.     private javax.swing.JLabel jLabel2;
  203.     private javax.swing.JLabel jLabel3;
  204.     private javax.swing.JLabel jLabel4;
  205.     private javax.swing.JLabel jLabel5;
  206.     private javax.swing.JPanel jPanel1;
  207.     private javax.swing.JTextField jTextField1;
  208.     private javax.swing.JTextField jTextField2;
  209.     private javax.swing.JTextField jTextField3;
  210.     // End of variables declaration                  
  211. }
复制代码

今天主要是添加了按保存按钮后,显示共保存了几条内容功能。在read()函数里采用了动态数组,学过数据结构的都很容易理解,以下我介绍下怎么把文件打包成.exe安装文件,在其他电脑上进行安装。

1.下载Inno setup软件,在这个网站
  1. http://www.jrsoftware.org/isdl.php
复制代码
我想下载的是innosetup-5.5.9-unicode.exe这个版本

2.设置环境变量,把软件安装在你电脑上的目录放到path里

3.点击NetBeans里你的项目目录右键菜单选属性-》部署然后把在项目菜单启动打包操作勾选上,如图:
aaaaa.png

4.主菜单选择运行-》清理并构建项目

5.还是右键点击项目目录选择打包为-》exe安装程序,安装文件就会在你项目目录里dist文件夹下出现

下面是我编写的源码,和打包后程序
JavaApplication3.zip (51.05 KB, 下载次数: 1)

本帖被以下淘专辑推荐:

1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐 上一条 /3 下一条

    移动客户端下载(未启用)
    微信公众号

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备11014136号

Copyright 2018 鱼C论坛 版权所有 All Rights Reserved.

Powered by Discuz! X3.1 Copyright
© 2001-2018 Comsenz Inc.    All Rights Reserved.

小黑屋|手机版|Archiver|鱼C工作室 ( 粤公网安备 44051102000370号 | 粤ICP备11014136号

GMT+8, 2017-11-20 19:31

快速回复 返回顶部 返回列表