糯米文學吧

位置:首頁 > 計算機 > 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();

}

}