亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Java文件選擇對話框(文件選擇器JFileChooser)的使用:以一個文件加密器為例

2019-11-15 00:44:06
字體:
來源:轉載
供稿:網友
java文件選擇對話框(文件選擇器JFileChooser)的使用:以一個文件加密器為例

文件加密器,操作過程肯定涉及到文件選擇器的使用,所以這里以文件加密器為例。下例為我自己寫的一個文件加密器,沒什么特別的加密算法,只為演示文件選擇器JFileChooser的使用。

加密器界面如圖:

項目目錄結構如圖:

下面貼出各個文件的源代碼:

MainForm.java

package com.lidi;import javax.swing.*;import java.awt.*;public class MainForm extends JFrame {    /**     * 構造界面     *      * @author 1109030125     */    PRivate static final long serialVersionUID = 1L;    /* 主窗體里面的若干元素 */    private JFrame mainForm = new JFrame("TXT文件加密"); // 主窗體,標題為“TXT文件加密”    private JLabel label1 = new JLabel("請選擇待加密或解密的文件:");    private JLabel label2 = new JLabel("請選擇加密或解密后的文件存放位置:");    public static JTextField sourcefile = new JTextField(); // 選擇待加密或解密文件路徑的文本域    public static JTextField targetfile = new JTextField(); // 選擇加密或解密后文件路徑的文本域    public static JButton buttonBrowseSource = new JButton("瀏覽"); // 瀏覽按鈕    public static JButton buttonBrowseTarget = new JButton("瀏覽"); // 瀏覽按鈕    public static JButton buttonEncrypt = new JButton("加密"); // 加密按鈕    public static JButton buttonDecrypt = new JButton("解密"); // 解密按鈕    public MainForm() {        Container container = mainForm.getContentPane();        /* 設置主窗體屬性 */        mainForm.setSize(400, 270);// 設置主窗體大小        mainForm.setDefaultCloSEOperation(WindowConstants.EXIT_ON_CLOSE);// 設置主窗體關閉按鈕樣式        mainForm.setLocationRelativeTo(null);// 設置居于屏幕中央        mainForm.setResizable(false);// 設置窗口不可縮放        mainForm.setLayout(null);        mainForm.setVisible(true);// 顯示窗口        /* 設置各元素位置布局 */        label1.setBounds(30, 10, 300, 30);        sourcefile.setBounds(50, 50, 200, 30);        buttonBrowseSource.setBounds(270, 50, 60, 30);        label2.setBounds(30, 90, 300, 30);        targetfile.setBounds(50, 130, 200, 30);        buttonBrowseTarget.setBounds(270, 130, 60, 30);        buttonEncrypt.setBounds(100, 180, 60, 30);        buttonDecrypt.setBounds(200, 180, 60, 30);        /* 為各元素綁定事件監聽器 */        buttonBrowseSource.addActionListener(new BrowseAction()); // 為源文件瀏覽按鈕綁定監聽器,點擊該按鈕調用文件選擇窗口        buttonBrowseTarget.addActionListener(new BrowseAction()); // 為目標位置瀏覽按鈕綁定監聽器,點擊該按鈕調用文件選擇窗口        buttonEncrypt.addActionListener(new EncryptAction()); // 為加密按鈕綁定監聽器,單擊加密按鈕會對源文件進行加密并輸出到目標位置        buttonDecrypt.addActionListener(new DecryptAction()); // 為解密按鈕綁定監聽器,單擊解密按鈕會對源文件進行解密并輸出到目標位置        sourcefile.getDocument().addDocumentListener(new TextFieldAction());// 為源文件文本域綁定事件,如果文件是.txt類型,則禁用解密按鈕;如果是.kcd文件,則禁用加密按鈕。        sourcefile.setEditable(false);// 設置源文件文本域不可手動修改        targetfile.setEditable(false);// 設置目標位置文本域不可手動修改        container.add(label1);        container.add(label2);        container.add(sourcefile);        container.add(targetfile);        container.add(buttonBrowseSource);        container.add(buttonBrowseTarget);        container.add(buttonEncrypt);        container.add(buttonDecrypt);    }    public static void main(String args[]) {        new MainForm();    }}

BrowseAction.java

package com.lidi;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JFileChooser;import javax.swing.filechooser.FileNameExtensionFilter;public class BrowseAction implements ActionListener {    @Override    public void actionPerformed(ActionEvent e) {        if (e.getSource().equals(MainForm.buttonBrowseSource)) {            JFileChooser fcDlg = new JFileChooser();            fcDlg.setDialogTitle("請選擇待加密或解密的文件...");            FileNameExtensionFilter filter = new FileNameExtensionFilter(                    "文本文件(*.txt;*.kcd)", "txt", "kcd");            fcDlg.setFileFilter(filter);            int returnVal = fcDlg.showOpenDialog(null);            if (returnVal == JFileChooser.APPROVE_OPTION) {                String filepath = fcDlg.getSelectedFile().getPath();                MainForm.sourcefile.setText(filepath);            }        } else if (e.getSource().equals(MainForm.buttonBrowseTarget)) {            JFileChooser fcDlg = new JFileChooser();            fcDlg.setDialogTitle("請選擇加密或解密后的文件存放目錄");            fcDlg.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);            int returnVal = fcDlg.showOpenDialog(null);            if (returnVal == JFileChooser.APPROVE_OPTION) {                String filepath = fcDlg.getSelectedFile().getPath();                MainForm.targetfile.setText(filepath);            }        }    }}
查看代碼

EncryptAction.java

package com.lidi;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import javax.swing.JOptionPane;public class EncryptAction implements ActionListener {    @Override    public void actionPerformed(ActionEvent e) {        // TODO Auto-generated method stub        if (MainForm.sourcefile.getText().isEmpty()) {            JOptionPane.showMessageDialog(null, "請選擇待加密文件!");        }        else if (MainForm.targetfile.getText().isEmpty()) {            JOptionPane.showMessageDialog(null, "請選擇加密后文件存放目錄!");        }        else {            String sourcepath = MainForm.sourcefile.getText();            String targetpath = MainForm.targetfile.getText();            File file = new File(sourcepath);            String filename = file.getName();            File dir = new File(targetpath);            if (file.exists() && dir.isDirectory()) {                File result = new File(getFinalFile(targetpath, filename));                if (!result.exists()) {                    try {                        result.createNewFile();                    } catch (IOException e1) {                        JOptionPane.showMessageDialog(null,                                "目標文件創建失敗,請檢查目錄是否為只讀!");                    }                }                try {                    FileReader fr = new FileReader(file);                    FileWriter fw = new FileWriter(result);                    int ch = 0;                    while ((ch = fr.read()) != -1) {                        // System.out.print(Encrypt(ch));                        fw.write(Encrypt(ch));                    }                    fw.close();                    fr.close();                    JOptionPane.showMessageDialog(null, "加密成功!");                } catch (Exception e1) {                    JOptionPane.showMessageDialog(null, "未知錯誤!");                }            }            else if (!file.exists()) {                JOptionPane.showMessageDialog(null, "待加密文件不存在!");            } else {                JOptionPane.showMessageDialog(null, "加密后文件存放目錄不存在!");            }        }    }    public char Encrypt(int ch) {        int x = ch + 1;        return (char) (x);    }    public String getFinalFile(String targetpath, String filename) {        int length = filename.length();        String finalFileName = filename.substring(0, length - 4);        String finalFile = targetpath + "http://" + finalFileName + ".kcd";        return finalFile;    }}
查看代碼

DecryptAction.java

package com.lidi;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import javax.swing.JOptionPane;public class DecryptAction implements ActionListener {    @Override    public void actionPerformed(ActionEvent e) {        // TODO Auto-generated method stub        if (MainForm.sourcefile.getText().isEmpty()) {            JOptionPane.showMessageDialog(null, "請選擇待解密文件!");        }        else if (MainForm.targetfile.getText().isEmpty()) {            JOptionPane.showMessageDialog(null, "請選擇解密后文件存放目錄!");        }        else {            String sourcepath = MainForm.sourcefile.getText();            String targetpath = MainForm.targetfile.getText();            File file = new File(sourcepath);            String filename = file.getName();            File dir = new File(targetpath);            if (file.exists() && dir.isDirectory()) {                File result = new File(getFinalFile(targetpath, filename));                if (!result.exists()) {                    try {                        result.createNewFile();                    } catch (IOException e1) {                        JOptionPane.showMessageDialog(null,                                "目標文件創建失敗,請檢查目錄是否為只讀!");                    }                }                try {                    FileReader fr = new FileReader(file);                    FileWriter fw = new FileWriter(result);                    int ch = 0;                    while ((ch = fr.read()) != -1) {                        // System.out.print(Encrypt(ch));                        fw.write(Decrypt(ch));                    }                    fw.close();                    fr.close();                    JOptionPane.showMessageDialog(null, "解密成功!");                } catch (Exception e1) {                    JOptionPane.showMessageDialog(null, "未知錯誤!");                }            }            else if (!file.exists()) {                JOptionPane.showMessageDialog(null, "待解密文件不存在!");            } else {                JOptionPane.showMessageDialog(null, "解密后文件存放目錄不存在!");            }        }    }    public char Decrypt(int ch) {        // double x = 0 - Math.pow(ch, 2);        int x = ch - 1;        return (char) (x);    }    public String getFinalFile(String targetpath, String filename) {        int length = filename.length();        String finalFileName = filename.substring(0, length - 4);        String finalFile = targetpath + "http://" + finalFileName + ".txt";        return finalFile;    }}
查看代碼

TextFieldAction.java

package com.lidi;import javax.swing.event.DocumentEvent;import javax.swing.event.DocumentListener;public class TextFieldAction implements DocumentListener {    @Override    public void insertUpdate(DocumentEvent e) {        // TODO Auto-generated method stub        ButtonAjust();    }    @Override    public void removeUpdate(DocumentEvent e) {        // TODO Auto-generated method stub        ButtonAjust();    }    @Override    public void changedUpdate(DocumentEvent e) {        // TODO Auto-generated method stub        ButtonAjust();    }    public void ButtonAjust() {        String file = MainForm.sourcefile.getText();        if (file.endsWith("txt")) {            MainForm.buttonDecrypt.setEnabled(false);            MainForm.buttonEncrypt.setEnabled(true);        }        if (file.endsWith("kcd")) {            MainForm.buttonEncrypt.setEnabled(false);            MainForm.buttonDecrypt.setEnabled(true);        }    }}
查看代碼


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品久久久久久久久久久久久久| 91成人国产在线观看| 97免费视频在线| 久久国产精品首页| 久久精品国产精品亚洲| 午夜精品久久久久久久99热| 中文字幕亚洲在线| 美女性感视频久久久| 亚洲精品一区二区在线| 欧美性xxxxx极品娇小| 在线播放精品一区二区三区| 一区二区三区国产在线观看| 欧美高清视频一区二区| 国产精选久久久久久| 欧美xxxx综合视频| 91精品视频一区| 亚洲桃花岛网站| 日韩va亚洲va欧洲va国产| 国产精品美女免费视频| 动漫精品一区二区| 最新69国产成人精品视频免费| 成人久久一区二区三区| 亚洲综合中文字幕在线| 久久久久久欧美| 亚洲在线免费看| 国外成人免费在线播放| 亚洲女人被黑人巨大进入| 欧美精品久久久久久久久久| 国产精品入口免费视| 一区二区日韩精品| 欧美另类老肥妇| 97国产精品视频| 欧美亚洲成人xxx| 亚洲成av人影院在线观看| 欧美电影免费观看高清| 久久精品亚洲一区| www.欧美三级电影.com| 亚洲精品福利免费在线观看| 91久久久久久| 欧美日韩国产一中文字不卡| 亚洲国产精品久久久久秋霞蜜臀| 91国产精品电影| 亚洲激情中文字幕| 欧美激情欧美狂野欧美精品| 欧美精品在线看| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产色视频一区| 国产中文字幕日韩| 亚洲国产精品久久久久| 黄色成人av网| 欧美日韩激情小视频| 亚洲精品99999| 视频直播国产精品| 91精品国产成人| 久久精品中文字幕一区| 国模叶桐国产精品一区| 国产精品久久久久久久午夜| 91亚洲国产成人久久精品网站| 国产精品视频最多的网站| 亚洲欧洲偷拍精品| 欧美大成色www永久网站婷| 亚洲一区二区三区香蕉| 日韩av在线精品| 成人久久久久爱| 成人a视频在线观看| 亚洲精品美女久久久| 久久九九免费视频| 日本亚洲欧美成人| 在线成人一区二区| 曰本色欧美视频在线| 久久亚洲精品毛片| 成人xvideos免费视频| 亚洲性视频网址| 久久91精品国产91久久跳| 日韩精品视频免费| 性欧美亚洲xxxx乳在线观看| 日韩精品视频观看| 日韩亚洲在线观看| 欧美日韩免费观看中文| 精品国产鲁一鲁一区二区张丽| 国产精品免费小视频| 国产一区二区三区在线视频| 91超碰中文字幕久久精品| 美女视频黄免费的亚洲男人天堂| 日韩成人在线电影网| 欧美男插女视频| 欧美一区二区三区免费观看| 亚洲激情在线观看| 欧美大成色www永久网站婷| 亚洲国产精品va在线观看黑人| 亚洲一区二区免费在线| 51色欧美片视频在线观看| 国语自产精品视频在线看一大j8| 国产视频精品一区二区三区| 高清视频欧美一级| 亚洲黄色片网站| 国产不卡精品视男人的天堂| 成人黄色在线免费| 91精品免费久久久久久久久| 亚洲欧美日韩另类| 日韩在线欧美在线国产在线| 国产精品视频在线播放| 亚洲激情在线观看视频免费| 国产精品第三页| 亚洲成人精品av| 国产成人精品一区二区| 国产成人鲁鲁免费视频a| 色综合天天狠天天透天天伊人| 亚洲激情视频网站| 欧美做受高潮1| 97成人超碰免| 国产成人黄色av| 国产精品视频男人的天堂| 国产精品v日韩精品| 8050国产精品久久久久久| 日韩av资源在线播放| 亚洲第一中文字幕在线观看| 国产精品视频99| 亚洲欧洲在线播放| 欧美裸体视频网站| 中文字幕亚洲专区| 91精品国产91久久久久久久久| 日韩欧美国产黄色| 国产精品27p| 欧美日韩国产999| 欧美性极品xxxx娇小| 久久久噜噜噜久噜久久| 在线精品播放av| 美女扒开尿口让男人操亚洲视频网站| 亚洲奶大毛多的老太婆| 日韩欧美国产中文字幕| 中国china体内裑精亚洲片| 北条麻妃久久精品| 国产精品久久久一区| 久久人体大胆视频| 青青草精品毛片| 91国产精品电影| 欧美日韩国产精品一区二区不卡中文| 欧美日韩国产麻豆| 97香蕉久久夜色精品国产| 日韩免费在线看| 91精品综合久久久久久五月天| 国产69精品久久久久久| 日本国产高清不卡| 亚洲性夜色噜噜噜7777| 欧美日韩在线第一页| 91国产视频在线| 久久激情视频免费观看| 亚洲视频欧美视频| 91天堂在线视频| 中文字幕av一区中文字幕天堂| 久久中文字幕一区| 国模精品系列视频| 98午夜经典影视| 国产精品电影网站| 精品久久久国产精品999| 欧美性xxxx18| 久久激情五月丁香伊人| 久久久久久国产三级电影| 久久久噜噜噜久久| 26uuu另类亚洲欧美日本老年| 亚洲欧美日韩在线高清直播| 久久综合免费视频影院| 中文字幕欧美精品在线|