zoukankan      html  css  js  c++  java
  • JAVA JFrame程序小计

    笔者受人委托,需要写一个文件转换的程序。

    一听到文件转换,笔者第一个反应是想shell或者python这样的脚本语言来实现。但是委托人有些特殊要求,想要文件转换的过程中加入一些可以控制修改的功能,并且要求有操作界面,这样他们就可以很轻松的通过软件来完成文件转换的过程,最终,笔者绝地你给使用java语言来完成这个软件。

    以下记录本次程序碰到的一些有用的部分。

    1、首先,界面的美观性。JFrame自带的主题感觉比较难看,笔者使用UIManager修改了界面的主题。代码如下:

    String lookandfeel = "com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel";
    UIManager.setLookAndFeel(lookandfeel);

    修改后界面效果如下:

    2、文件读写

    笔者每次读取一行文件,代码如下

    File fileInput = new File(strInputFile);
    if(fileInput.exists()) {
        try {
            FileReader freader = new FileReader(fileInput);
            BufferedReader reader = new BufferedReader(freader);
            String strLine=null;while(null != (strLine = reader.readLine())) {
                System.out.println(strLine);
            }
        }
    }

    写入文件代码:

    File fileOutput = new File(strOutputFile);
    FileOutputStream out = new FileOutputStream(fileOutput);
    String strContent="写入文件的内容";
    out.write(strContent.getBytes());

    在文件写入的过程中,出现了一个比较有趣的问题。

    笔者想要用固定长度的格式写入数据到文件中,所有采用String.format方法来组织一个固定长度格式的字符串以便写入文件,最后发现,String.format方法中汉字的长度是1,而不是GBK编码的2.

    最后解决这个问题的办法如下,貌似这个是非传统的方法:

    String strChinese="汉字";
    String strOutput=String.format("%-100s", new String(strChinese.getBytes, "ISO-8859-1"));
    strOutput=new String(strOutput.getBytes("ISO-8859-1"));

    这样转换出来的结果行字就是2个字节。

    3、软件打包

    程序编写完成后,笔者导出jar文件,最后使用exe4j软件将jar包转换成exe。

    使用exe4j生成执行码后,需要将带jar包的文件目录一起拷贝给使用者,这样使用者在没有jar环境的电脑上也可以运行该程序。

    心有猛虎,细嗅蔷薇
  • 相关阅读:
    CI框架源码解析十九之分页类文件Pagination.php
    sublime新代码段
    sublime
    递归调用详解,分析递归调用的详细过程
    什么是锚点?锚点应该如何用?
    PHP中spl_autoload_register函数的用法
    PHP 构造方法 __construct()
    工欲善其事,必先利其器---IDE使用
    Apache操作
    js中常用的操作
  • 原文地址:https://www.cnblogs.com/stupid-vincent/p/6218211.html
Copyright © 2011-2022 走看看