糯米文學吧

位置:首頁 > 計算機 > java語言

輔助功能模組FTP站點管理實現方法

java語言7.61K

本文介紹了Java語言實現簡單FTP軟,輔助功能模組FTP站點管理的實現方法,具有一定的參考價值,感興趣的小夥伴們可以參考一下。想了解更多相關資訊請持續關注我們應屆畢業生考試網!

輔助功能模組FTP站點管理實現方法

  1、FTP站點管理

點選“FTP站點管理”按鈕,彈出對話方塊“FTP站點管理”,如下圖

  1) 連線站點

在FTP站點管理面板上選好要連線的站點,點選“連線”按鈕,則會將主機地址、埠號、使用者名稱好,並將密碼清空,如下圖

到其主要程式碼如下

if (ls("link")) { // 如果單擊的是連線按鈕

inkInfo(bean); // 呼叫setLinkInfo()方法

dispose(); // 關閉FTP站點管理對話方塊

}

其中呼叫的是lientFrame的setLinkInfo(SiteInfoBean bean)方法,其程式碼如下

/**

* 設定FTP連線資訊的方法,由FTP站點管理器呼叫

*/

ublic void setLinkInfo(SiteInfoBean bean) {

ext(erver()); // 設定主機地址

ext(ort() + ""); // 設定埠號

ext(serName()); // 設定使用者名稱

ext(""); // 密碼清空

estFocus(); // 密碼框請求焦點

  2) 新增站點

在FTP站點管理面板上點選“新增”按鈕,會產生一個新的對話方塊“新增FTP站點”,如下圖

填寫好站點名稱、地址、埠號、登陸使用者後點擊”確定”或者”重置”按鈕會觸發Dialog類的actionPerformed(ActionEvent e)方法,其程式碼如下

/**

* 介面按鈕的事件處理方法

*/

@Override

public void actionPerformed(ActionEvent e) {

String command = ctionCommand(); // 獲取按鈕的command屬性

if (ls("ok")) { // 如果是確定按鈕

try {

if (dialog == null) {

dispose();

return;

}

// 獲取介面所有文字框的內容

String siteName = ext()();

String server = ext()();

String userName = ext()();

String portStr = porext()();

// 判斷是否填寫了全部文字框

if (pty() || pty()

|| pty() || pty()) {

MessageDialog(this, "請填寫全部資訊");

return;

}

int port = eOf(portStr);

// 建立FTP站點資訊的JavaBean物件

SiteInfoBean bean = new SiteInfoBean(siteName, server, port,

userName);

// 如果對話方塊的siteBean不為空

if (siteBean != null)

d(d()); // 設定FTP站點的ID編號

ite(bean); // 呼叫父窗體的 addSite方法新增站點

SiteList(); // 呼叫父窗體的loadSiteList方法過載站點列表

dispose();

} catch (NullPointerException ex) {

tStackTrace();

return;

} catch (NumberFormatException ex) {

MessageDialog(this, "請正確填寫埠號資訊");

tStackTrace();

return;

}

}

if (ls("cancel")) { // 如果是重置按鈕

if (siteBean == null) // 如果對話方塊的siteBean屬性為空

clearInput(); // 呼叫清除文字框內容的方法

else

// 否則

initInput(); // 初始化介面文字框內容

}

}

  3) 編輯站點

在FTP站點管理面板上選好要編輯的站點,點選“編輯”按鈕,會產生一個新的對話方塊“編輯FTP站點”,如下圖

編輯寫好站點名稱、地址、埠號、登陸使用者後點擊”確定”或者”重置”按鈕觸發Dialog類的actionPerformed(ActionEvent e)方法,其程式碼如新增站點裡一樣。

  4) 刪除站點

在FTP站點管理面板上選好要刪除的站點,點選“刪除”按鈕,呼叫delSite(SiteInfoBean bean)方法,其程式碼如下

/**

* 刪除FTP站點的方法

*/

public void delSite(SiteInfoBean bean) {

// 從站點屬性集合物件中移除指定ID編號的站點屬性

ve(d());

try {

// 獲取站點屬性檔案的輸出流

FileOutputStream out = new FileOutputStream(FILE);

e(out, "FTP站點資料"); // 呼叫store方法儲存站點屬性

loadSiteList(); // 重新裝載站點列表

} catch (FileNotFoundException e) {

tStackTrace();

} catch (IOException e) {

tStackTrace();

}

}

  2、上傳/下載任務結束後自動關機

在ePanel類的'refreshQueue()方法裡會判斷任務佇列是否為空以及自動關機按鈕是否被按下,如果滿足條件則執行系統關機命令,延遲30秒後自動關機。其程式碼如下

/**

* 重新整理佇列的方法

*/

private synchronized void refreshQueue() {

// 如果自動關機按鈕被按下並且上傳和下載的佇列都有任務

if (hutdownButton()lected() && pty()

&& pty()) {

try {

// 執行系統關機命令,延遲30秒鐘

untime()("shutdown -s -t 30");

} catch (IOException e) {

tStackTrace();

}

}

// 建立表格的資料模型物件

DefaultTableModel model = new DefaultTableModel(columns, 0);

// 獲取本地上傳佇列中的任務

Object[] localQueueArray = ray();

// 遍歷本地上傳任務

for (int i = 0; i < th; i++) {

Object[] queueValue = (Object[]) localQueueArray[i];

if (queueValue == null)

continue;

File localFile = (File) queueValue[0];

// 把上傳佇列的任務新增到表格元件的資料模型中

ow(new Object[] { bsoluteFile(), "上傳",erver(), i == 0 ? "正在上傳" : "等待上傳" });

}

// 獲取下載佇列的任務

Object[] ftpQueueArray = ray();

// 遍歷下載佇列

for (int i = 0; i < th; i++) {

Object[] queueValue = (Object[]) ftpQueueArray[i];

if (queueValue == null)

continue;

FtpFile ftpFile = (FtpFile) queueValue[0];

// 把下載佇列的任務新增到表格元件的資料模型中

ow(new Object[] { bsolutePath(), "下載",

erver(), i == 0 ? "正在下載" : "等待下載" });

}

odel(model); // 設定表格使用本方法的表格資料模型

}

  3、軟體系統化托盤

當點選最小化軟體後,系統就會變成一個生成系統推盤,點選系統托盤右鍵會有“顯示主窗體”和“退出”兩個選單,如下圖

以下是初始化系統托盤的程式碼,如下

/**

* 初始化系統托盤的方法

*/

private void initSystemTray() {

if (pported())

systemTray = ystemTray();

TrayIcon trayIcon = new TrayIcon(mage());

PopupMenu popupMenu = new PopupMenu("托盤選單");

// 建立顯示主窗體菜單項

MenuItem showMenuItem = new MenuItem("顯示主窗體");

ctionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

xtendedState(AL);

isible(true);

}

});

// 建立退出選單項

MenuItem exitMenuItem = new MenuItem("退出");

ctionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

(0);

}

});

(showMenuItem);

eparator();

(exitMenuItem);

opupMenu(popupMenu);

try {

(trayIcon);

} catch (AWTException e) {

tStackTrace();

}

}