Swing檔案下載功能
阿新 • • 發佈:2018-12-02
package com.iss.iaf.codemanagement;
import javax.swing.JOptionPane;
/**
* 程式碼管理應用程式--專案的入口
* @author xinzhangah
* @data 2016-12-02
*
*/
public class JFrameMain {
/**
* @param args
*/
public static void main(String[] args) {
Object[] possibleValues = {"開發人員", "測試人員/客戶/現場" };
Object selectedValue =JOptionPane.showInputDialog(null, "請選擇身份角色:",
"選擇角色:", JOptionPane.INFORMATION_MESSAGE, null, possibleValues,
possibleValues[0]);
if("開發人員".equals(selectedValue)){
new UpLoad().UpLoadFile("上傳檔案",selectedValue);
}else if("測試人員/客戶/現場".equals(selectedValue)){
new DownLoad();
}
} }
-------------------------------檔案下載類------------------------------------------ package com.iss.iaf.codemanagement; import java.awt.Container;
import java.awt.Point;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.HashSet; import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTabbedPane;
import javax.swing.JTextField; public class DownLoad implements ActionListener{
JFrame frame = new JFrame("");// 框架佈局
JTabbedPane tabPane = new JTabbedPane();// 選項卡布局
Container con = new Container();//
JLabel label1 = new JLabel("檔案目錄");
JLabel label2 = new JLabel("選擇檔案");
JTextField text1 = new JTextField("./");// TextField 目錄的路徑
JTextField text2 = new JTextField("./");// 檔案的路徑
JButton button1 = new JButton("...");// 選擇
JButton button2 = new JButton("...");// 選擇
JFileChooser jfc1 = new JFileChooser();// 檔案選擇器
JFileChooser jfc2 = new JFileChooser();// 檔案選擇器
JButton button3 = new JButton("確定");// 下載按鈕
JTextField jTextField1 = new JTextField();
DownLoad() {
double lx = Toolkit.getDefaultToolkit().getScreenSize().getWidth();
double ly = Toolkit.getDefaultToolkit().getScreenSize().getHeight();
frame.setLocation(new Point((int) (lx / 2) - 200, (int) (ly / 2) - 200));// 設定窗口出現位置
frame.setSize(500, 500);// 設定視窗大小
frame.setContentPane(tabPane);// 設定佈局
label1.setBounds(10, 10, 70, 20);
text1.setBounds(75, 10, 120, 20);
button1.setBounds(210, 10, 50, 20);
label2.setBounds(10, 35, 70, 20);
text2.setBounds(75, 35, 120, 20);
button2.setBounds(210, 35, 50, 20);
button3.setBounds(30, 60, 60, 20);
button1.addActionListener(this); // 新增事件處理
button2.addActionListener(this); // 新增事件處理
button3.addActionListener(this); // 新增事件處理
con.add(label1);
con.add(text1);
con.add(button1);
con.add(label2);
con.add(text2);
con.add(button2);
con.add(button3);
frame.setVisible(true);// 視窗可見
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 使能關閉視窗,結束程式
tabPane.add("下載頁面", con);// 添加布局1
}
/**
* 時間監聽的方法
*/
public void actionPerformed(ActionEvent e) {
if (e.getSource().equals(button1)) {// 判斷觸發方法的按鈕是哪個
jfc1.setFileSelectionMode(1);// 設定只能選擇到資料夾
int state = jfc1.showOpenDialog(null);// 此句是開啟檔案選擇器介面的觸發語句
if (state == 1) {
return;
} else {
File f = jfc1.getSelectedFile();// f為選擇到的目錄
text1.setText(f.getAbsolutePath());
}
}
// 繫結到選擇檔案,先擇檔案事件
if (e.getSource().equals(button2)) {
jfc2.setFileSelectionMode(0);// 設定只能選擇到檔案
int state = jfc2.showOpenDialog(null);// 此句是開啟檔案選擇器介面的觸發語句
if (state == 1) {
return;// 撤銷則返回
} else {
File f = jfc2.getSelectedFile();// f為選擇到的檔案
text2.setText(f.getAbsolutePath());
}
}
if (e.getSource().equals(button3)) {
String filePath= jfc2.getSelectedFile().getAbsolutePath(); //原始檔路徑
String fName = jfc2.getSelectedFile().getName(); //原始檔名
String path= jfc1.getSelectedFile().getAbsolutePath(); //目標路徑
try {
download(fName,filePath,path);
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
/**
*
* @param from_file_name 原始檔名
* @param path 原始檔路徑
* @param to_path 目標路徑
* @throws IOException
*/
public void download(String from_file_name,String path, String to_path)throws IOException { OutputStream output = null;
FileInputStream input =null;
try {
input = new FileInputStream(path);
byte[] buffer = new byte[1024];
File des = new File(to_path, from_file_name);
output = new FileOutputStream(des);
int len = 0;
while (-1 != (len = input.read(buffer))) {
output.write(buffer, 0, len);
}
if (output != null) {
try {
if (input != null)
output.close();
input.close();
JOptionPane.showMessageDialog(null, "下載程式碼", "提示", 2);
} catch (IOException e) {
e.printStackTrace();
}
}
} catch (FileNotFoundException e1) {
JOptionPane.showMessageDialog(null, "下載失敗!", "提示",
JOptionPane.ERROR_MESSAGE);
e1.printStackTrace();
} catch (IOException e1) {
JOptionPane.showMessageDialog(null, "下載失敗!", "提示",
JOptionPane.ERROR_MESSAGE);
e1.printStackTrace();
}
}
}
--------------------------
* 程式碼管理應用程式--專案的入口
* @author xinzhangah
* @data 2016-12-02
*
*/
public class JFrameMain {
/**
* @param args
*/
public static void main(String[] args) {
Object[] possibleValues = {"開發人員", "測試人員/客戶/現場" };
Object selectedValue =JOptionPane.showInputDialog(null, "請選擇身份角色:",
"選擇角色:", JOptionPane.INFORMATION_MESSAGE, null, possibleValues,
possibleValues[0]);
if("開發人員".equals(selectedValue)){
new UpLoad().UpLoadFile("上傳檔案",selectedValue);
}else if("測試人員/客戶/現場".equals(selectedValue)){
new DownLoad();
}
} }
-------------------------------檔案下載類------------------------------------------ package com.iss.iaf.codemanagement; import java.awt.Container;
import java.awt.Point;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.HashSet; import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTabbedPane;
import javax.swing.JTextField; public class DownLoad implements ActionListener{
JFrame frame = new JFrame("");// 框架佈局
JTabbedPane tabPane = new JTabbedPane();// 選項卡布局
Container con = new Container();//
JLabel label1 = new JLabel("檔案目錄");
JLabel label2 = new JLabel("選擇檔案");
JTextField text1 = new JTextField("./");// TextField 目錄的路徑
JTextField text2 = new JTextField("./");// 檔案的路徑
JButton button1 = new JButton("...");// 選擇
JButton button2 = new JButton("...");// 選擇
JFileChooser jfc1 = new JFileChooser();// 檔案選擇器
JFileChooser jfc2 = new JFileChooser();// 檔案選擇器
JButton button3 = new JButton("確定");// 下載按鈕
JTextField jTextField1 = new JTextField();
DownLoad() {
double lx = Toolkit.getDefaultToolkit().getScreenSize().getWidth();
double ly = Toolkit.getDefaultToolkit().getScreenSize().getHeight();
frame.setLocation(new Point((int) (lx / 2) - 200, (int) (ly / 2) - 200));// 設定窗口出現位置
frame.setSize(500, 500);// 設定視窗大小
frame.setContentPane(tabPane);// 設定佈局
label1.setBounds(10, 10, 70, 20);
text1.setBounds(75, 10, 120, 20);
button1.setBounds(210, 10, 50, 20);
label2.setBounds(10, 35, 70, 20);
text2.setBounds(75, 35, 120, 20);
button2.setBounds(210, 35, 50, 20);
button3.setBounds(30, 60, 60, 20);
button1.addActionListener(this); // 新增事件處理
button2.addActionListener(this); // 新增事件處理
button3.addActionListener(this); // 新增事件處理
con.add(label1);
con.add(text1);
con.add(button1);
con.add(label2);
con.add(text2);
con.add(button2);
con.add(button3);
frame.setVisible(true);// 視窗可見
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 使能關閉視窗,結束程式
tabPane.add("下載頁面", con);// 添加布局1
}
/**
* 時間監聽的方法
*/
public void actionPerformed(ActionEvent e) {
if (e.getSource().equals(button1)) {// 判斷觸發方法的按鈕是哪個
jfc1.setFileSelectionMode(1);// 設定只能選擇到資料夾
int state = jfc1.showOpenDialog(null);// 此句是開啟檔案選擇器介面的觸發語句
if (state == 1) {
return;
} else {
File f = jfc1.getSelectedFile();// f為選擇到的目錄
text1.setText(f.getAbsolutePath());
}
}
// 繫結到選擇檔案,先擇檔案事件
if (e.getSource().equals(button2)) {
jfc2.setFileSelectionMode(0);// 設定只能選擇到檔案
int state = jfc2.showOpenDialog(null);// 此句是開啟檔案選擇器介面的觸發語句
if (state == 1) {
return;// 撤銷則返回
} else {
File f = jfc2.getSelectedFile();// f為選擇到的檔案
text2.setText(f.getAbsolutePath());
}
}
if (e.getSource().equals(button3)) {
String filePath= jfc2.getSelectedFile().getAbsolutePath(); //原始檔路徑
String fName = jfc2.getSelectedFile().getName(); //原始檔名
String path= jfc1.getSelectedFile().getAbsolutePath(); //目標路徑
try {
download(fName,filePath,path);
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
/**
*
* @param from_file_name 原始檔名
* @param path 原始檔路徑
* @param to_path 目標路徑
* @throws IOException
*/
public void download(String from_file_name,String path, String to_path)throws IOException { OutputStream output = null;
FileInputStream input =null;
try {
input = new FileInputStream(path);
byte[] buffer = new byte[1024];
File des = new File(to_path, from_file_name);
output = new FileOutputStream(des);
int len = 0;
while (-1 != (len = input.read(buffer))) {
output.write(buffer, 0, len);
}
if (output != null) {
try {
if (input != null)
output.close();
input.close();
JOptionPane.showMessageDialog(null, "下載程式碼", "提示", 2);
} catch (IOException e) {
e.printStackTrace();
}
}
} catch (FileNotFoundException e1) {
JOptionPane.showMessageDialog(null, "下載失敗!", "提示",
JOptionPane.ERROR_MESSAGE);
e1.printStackTrace();
} catch (IOException e1) {
JOptionPane.showMessageDialog(null, "下載失敗!", "提示",
JOptionPane.ERROR_MESSAGE);
e1.printStackTrace();
}
}
}
--------------------------