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

首頁 > 編程 > Java > 正文

Java文件選擇對話框JFileChooser使用詳解

2019-11-26 15:06:59
字體:
來源:轉載
供稿:網友

文件加密器,操作過程肯定涉及到文件選擇器的使用,所以這里以文件加密器為例。下例為我自己寫的一個文件加密器,沒什么特別的加密算法,只為演示文件選擇器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国产中文字幕| 亚洲va国产va天堂va久久| 国产精品入口免费视| 国产成人精品久久二区二区91| 国产精品久久久久久网站| 亚洲第一中文字幕在线观看| 夜色77av精品影院| 亚洲一区二区自拍| 亚洲r级在线观看| 欧美日韩成人在线视频| 国产精品久久久久一区二区| 色综合色综合久久综合频道88| 26uuu另类亚洲欧美日本老年| 成人久久久久久| 亚洲第五色综合网| 欧美日韩一区二区三区在线免费观看| 欧美成人精品在线观看| 国产精品大陆在线观看| 日韩欧美福利视频| 国产成人亚洲综合91| 亚洲伊人久久大香线蕉av| 久久精品国产欧美激情| 久久精品久久精品亚洲人| 日韩有码在线播放| 91久久久久久国产精品| 久久手机精品视频| 亚洲欧美国产日韩天堂区| 亚洲japanese制服美女| 97在线视频精品| 欧美性色视频在线| 97人洗澡人人免费公开视频碰碰碰| 国产精品久久激情| 欧美日韩第一页| 久久精品99久久久香蕉| 国产一区二区三区精品久久久| 97精品视频在线播放| 欧美激情精品久久久久久蜜臀| 国产噜噜噜噜噜久久久久久久久| 97国产精品人人爽人人做| 亚洲国产中文字幕久久网| 国产性猛交xxxx免费看久久| 精品国产91久久久久久| 色综合视频一区中文字幕| 国产精品久久久久免费a∨大胸| 日韩一区二区在线视频| 97精品伊人久久久大香线蕉| 国内外成人免费激情在线视频网站| 午夜精品久久久久久99热软件| 国产精品狠色婷| 久久激情五月丁香伊人| 欧美亚洲国产视频小说| 国产精品老牛影院在线观看| 亚洲国产一区二区三区在线观看| 九九九久久久久久| 欧美日韩国产一区二区| 国产美女精品视频| 亚洲最新中文字幕| 91精品91久久久久久| 日韩视频―中文字幕| 日韩欧美国产黄色| 亚洲精品99久久久久中文字幕| 国产精品国产三级国产专播精品人| 日韩有码在线视频| 国产精品视频免费观看www| 92国产精品视频| 亚洲日韩中文字幕| 成人美女免费网站视频| 一区二区三区动漫| 亚洲影院色无极综合| 欧美在线亚洲一区| 亚洲色图欧美制服丝袜另类第一页| 欧美电影电视剧在线观看| 欧美超级乱淫片喷水| 色妞在线综合亚洲欧美| 亚洲国模精品私拍| 日韩中文字幕视频在线| 91亚洲精品视频| 国产精品扒开腿做爽爽爽视频| 亚洲欧美日韩爽爽影院| 国产精品久久久久av| 欧美日韩国产在线| 日韩精品欧美国产精品忘忧草| 欧美俄罗斯性视频| 久久久在线免费观看| 97超碰国产精品女人人人爽| 午夜精品久久久久久99热软件| 久久久久久久电影一区| 国产精品狼人色视频一区| 亚洲精品在线视频| 成人免费大片黄在线播放| 日韩美女激情视频| 91国内产香蕉| 午夜精品理论片| www.久久撸.com| 日韩精品免费综合视频在线播放| 91社影院在线观看| 久久免费少妇高潮久久精品99| 5278欧美一区二区三区| 亚洲国产女人aaa毛片在线| 中文字幕亚洲欧美日韩在线不卡| 国产精品99久久久久久人| 国产精品第七影院| 性色av香蕉一区二区| 精品少妇一区二区30p| 亚洲在线免费视频| 不卡在线观看电视剧完整版| 日韩免费视频在线观看| 色www亚洲国产张柏芝| 日韩欧美中文字幕在线观看| 精品国产精品自拍| 日韩在线中文字幕| 日韩精品视频在线播放| 国产成人精品一区二区三区| 色播久久人人爽人人爽人人片视av| 91成人性视频| 国产成人精品免费视频| 欧美电影在线免费观看网站| 91精品国产高清| 久久久久久久爱| 欧美老女人性视频| 日本免费久久高清视频| 红桃av永久久久| 色偷偷av亚洲男人的天堂| 国产精品久久久久久久久影视| 亚洲国产97在线精品一区| 亚洲人成在线观看| 欧美亚洲国产视频小说| 国产精品一区二区三区在线播放| 欧美黄色三级网站| 亚洲综合中文字幕在线| xxxxx成人.com| 不用播放器成人网| 91精品久久久久久久久久入口| 亚洲美女精品成人在线视频| 91精品国产综合久久香蕉的用户体验| 欧美高跟鞋交xxxxxhd| 青青久久aⅴ北条麻妃| 亚洲国产精品视频在线观看| 亚洲精品丝袜日韩| 国产不卡av在线| 97国产在线观看| 国产精品亚洲自拍| 欧美成人合集magnet| 国产精品xxxxx| 中日韩美女免费视频网址在线观看| 97国产精品人人爽人人做| 狠狠操狠狠色综合网| 欧美日韩免费在线观看| 成人做爽爽免费视频| 超碰日本道色综合久久综合| 国语自产精品视频在线看一大j8| 91探花福利精品国产自产在线| 国产精品大陆在线观看| 亚洲国内精品视频| 久久亚洲综合国产精品99麻豆精品福利| 国产精自产拍久久久久久| 欧美性视频精品| 川上优av一区二区线观看| yw.139尤物在线精品视频| 日本成人黄色片| 国产伦精品免费视频|