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环境的电脑上也可以运行该程序。

 

posted @ 2016-12-24 19:42  linux.vincent  阅读(398)  评论(0编辑  收藏  举报