单机工具--jframe应用

最近看同事写的一个工具很有意思,分享下

public class EncodingPanel extends JPanel {
private static final long serialVersionUID = 1L;


public EncodingPanel() {
super(new GridBagLayout());
initComponent();
}
public static void main(String[] args) {
new EncodingPanel().initComponent();
}


/**
* 初始化控件
*/
private void initComponent() {
GridBagConstraints constraints = new GridBagConstraints();
constraints.fill = GridBagConstraints.BOTH;
constraints.ipady = 8;
constraints.insets = new Insets(8, 0, 0, 0);
// 输入:
JLabel srcFileLabel = new JLabel("输入:");
constraints.gridwidth = 1;
constraints.weightx = 0;
this.add(srcFileLabel, constraints);
final JComboBox<String> srcEncodeType = new JComboBox<String>(
new String[] { "GBK", "GB2312", "UTF-8", "ISO8859-1" });
constraints.gridwidth = 2;
constraints.weightx = 0;
this.add(srcEncodeType, constraints);
final JButton srcButton = new JButton("请选择输入文件路径");
constraints.gridwidth = 3;
constraints.weightx = 1;
this.add(srcButton, constraints);
srcButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String file = DocParseFrame.chooseFile(JFileChooser.FILES_AND_DIRECTORIES);
if (!file.equals("")) {
srcButton.setText(file);
}
}
});
// 输出:
JLabel targetFileLabel = new JLabel("输出:");
constraints.gridwidth = 1;
constraints.gridy = 1;
constraints.weightx = 0;
this.add(targetFileLabel, constraints);
final JComboBox<String> targetEncodeType = new JComboBox<String>(
new String[] { "GBK", "GB2312", "UTF-8", "ISO8859-1" });
constraints.gridwidth = 2;
constraints.weightx = 0;
constraints.gridy = 1;
this.add(targetEncodeType, constraints);
final JButton targetButton = new JButton("请选择输出文件路径");
constraints.gridwidth = 3;
constraints.gridy = 1;
constraints.weightx = 0;
this.add(targetButton, constraints);
targetButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String file = DocParseFrame.chooseFile(JFileChooser.FILES_AND_DIRECTORIES);
if (!file.equals("")) {
targetButton.setText(file);
}
}
});
// 编码选择


// 转换按钮
final JButton changeButton = new JButton("转换");
constraints.gridwidth = 2;
constraints.gridy = 2;
constraints.weightx = 0;
constraints.insets = new Insets(24, 10, 0, 0);
this.add(changeButton, constraints);
final JLabel progresslabel = new JLabel("");
constraints.gridwidth = 2;
constraints.gridy = 2;
constraints.weightx = 0;
this.add(progresslabel, constraints);


// 错误面板
final JTextArea errTextArea = new JTextArea();
constraints.gridwidth = 6;
constraints.gridy = 3;
constraints.weighty = 20;


constraints.insets = new Insets(10, 0, 10, 0);
this.add(errTextArea, constraints);


changeButton.addActionListener(new ActionListener() {


@Override
public void actionPerformed(ActionEvent e) {
final String inFilePath = srcButton.getText();
final String inCharsetName = srcEncodeType.getSelectedItem().toString();
final String outFilePath = targetButton.getText();
final String outCharsetName = targetEncodeType.getSelectedItem().toString();
if (inFilePath.equals("请选择输入文件路径") || outFilePath.equals("请选择输出文件路径")) {
JOptionPane.showMessageDialog(EncodingPanel.this, "输入参数不正确");
return;
}
changeButton.setEnabled(false);
new Thread() {
public void run() {
try {
new EncodingUtil().recursionFileEncodingTrans(inFilePath, inCharsetName, outFilePath,
outCharsetName, new EncodingUtil.ProgressInterface() {
@Override
public void progress(int index) {
progresslabel.setText("正在处理:第" + index + "个");
}
});
progresslabel.setText("转换完毕");
} catch (Exception e) {
e.printStackTrace();
errTextArea.setText(e.toString());
}finally{
changeButton.setEnabled(true);
}
};
}.start();
}
});
}


}

package com.dinfo.oec.doc.ui;


import java.io.File;


import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTabbedPane;


public class DocParseFrame extends JFrame {
private static final long serialVersionUID = 1L;


public DocParseFrame() {
createJTabbedPane();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setBounds(100, 100, 400, 400);
this.setVisible(true);
}


public void createJTabbedPane() {
JTabbedPane tabbedPane = new JTabbedPane();
// 1。编码转换
tabbedPane.addTab("编码转换", new EncodingPanel());
// 2.文档解析
tabbedPane.addTab("文档解析", new DocParsePanel());
getContentPane().add(tabbedPane);
}


// 选择文件
public static String chooseFile(int chooseType) {
JFileChooser jfc = new JFileChooser();
jfc.setFileSelectionMode(chooseType);
jfc.showDialog(new JLabel(), "选择");
File file = jfc.getSelectedFile();
if (file != null) {
return file.getAbsolutePath();
} else {
return "";
}
}


public static void main(String[] args) {
new DocParseFrame();
}


}

很有意思的东东

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JFrame应用软件开发平台是一个基于JavaEE的面向应用软件开发的框架及自动化代码生成平台。通过使用JFrame应用软件的开发不再需要重头做起,只需通过JFrame自动代码生成工具配置、生成业务代码,并在此基础上简单地补充的业务逻辑即可。 JFrame降低了软件开发人员的要求,开发人员也无需掌握太多的编程知识,只需掌握JavaJavaScript基础知识,就可在平台上进行二次开发。TJFrame的目标是:“直接降低软件企业80%的研发成本,缩短项目开发发周期,提升客户满意度”;应用软件开发过程中80%的重复工作将由JFrame来完成,20%的特殊业务逻辑代码由开发人员在生成的代码基础上补充完善。 JFrame应用软件开发平台就如“一套毛胚房”,提供了软件的基本框架和相关基础设施;软件开发团队获取该平台后,可以对其进行“二次装修”,根据自己的业务需求,在其基础之上进行二次开发,实现满足业务需求的应用软件。JFrame应用软件开发平台作为作基础软件,能够满足您应用软件开发的各种需求,而且特别适合于各类管理信息系统的开发。 JFrame开发团队将不断的完善其功能,以使其能够满足更广泛的需求。JFrame不承诺可以实现“零代码”开发,因为业务逻辑千变万化,不可能有真正的“零代码”开发平台,但JFrame却是解决软件工程问题的“银弹”。
JFrame应用软件开发平台是一个基于JavaEE的面向应用软件开发的框架及自动化代码生成平台。通过使用JFrame应用软件的开发不再需要重头做起,只需通过JFrame自动代码生成工具配置、生成业务代码,并在此基础上简单地补充的业务逻辑即可。 JFrame降低了软件开发人员的要求,开发人员也无需掌握太多的编程知识,只需掌握JavaJavaScript基础知识,就可在平台上进行二次开发。TJFrame的目标是:“直接降低软件企业80%的研发成本,缩短项目开发发周期,提升客户满意度”;应用软件开发过程中80%的重复工作将由JFrame来完成,20%的特殊业务逻辑代码由开发人员在生成的代码基础上补充完善。 JFrame应用软件开发平台就如“一套毛胚房”,提供了软件的基本框架和相关基础设施;软件开发团队获取该平台后,可以对其进行“二次装修”,根据自己的业务需求,在其基础之上进行二次开发,实现满足业务需求的应用软件。JFrame应用软件开发平台作为作基础软件,能够满足您应用软件开发的各种需求,而且特别适合于各类管理信息系统的开发。 JFrame开发团队将不断的完善其功能,以使其能够满足更广泛的需求。JFrame不承诺可以实现“零代码”开发,因为业务逻辑千变万化,不可能有真正的“零代码”开发平台,但JFrame却是解决软件工程问题的“银弹”。 来源:www.tanjor.com.cn
JFrame应用软件开发平台是一个基于JavaEE的面向应用软件开发的框架及自动化代码生成平台。通过使用JFrame应用软件的开发不再需要重头做起,只需通过JFrame自动代码生成工具配置、生成业务代码,并在此基础上简单地补充的业务逻辑即可。 JFrame降低了软件开发人员的要求,开发人员也无需掌握太多的编程知识,只需掌握JavaJavaScript基础知识,就可在平台上进行二次开发。TJFrame的目标是:“直接降低软件企业80%的研发成本,缩短项目开发发周期,提升客户满意度”;应用软件开发过程中80%的重复工作将由JFrame来完成,20%的特殊业务逻辑代码由开发人员在生成的代码基础上补充完善。 JFrame应用软件开发平台就如“一套毛胚房”,提供了软件的基本框架和相关基础设施;软件开发团队获取该平台后,可以对其进行“二次装修”,根据自己的业务需求,在其基础之上进行二次开发,实现满足业务需求的应用软件。JFrame应用软件开发平台作为作基础软件,能够满足您应用软件开发的各种需求,而且特别适合于各类管理信息系统的开发。 JFrame开发团队将不断的完善其功能,以使其能够满足更广泛的需求。JFrame不承诺可以实现“零代码”开发,因为业务逻辑千变万化,不可能有真正的“零代码”开发平台,但JFrame却是解决软件工程问题的“银弹”。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值