輔助功能模塊FTP站點管理實現方法
本文介紹了Java語言實現簡單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();
}
}
-
如何使用一個java
Java是一種可以撰寫跨平台應用程序的`面向對象的程序設計語言。以下是小編為大家搜索整理的如何使用一個java,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!...
-
Java 正則表達式
Java是一門編程語言,那麼大家知道Java正則表達式是怎樣的呢?下面一起來看看!Java正則表達式正則表達式定義了字符串的模式。正則表達式可以用來搜索、編輯或處理文本。正則表達式並不僅限於某一種語言,但是在每種語言中有細微的差別。正則表達式實例一個字符串其...
-
Java編程語言初學者入門課程
初學者先弄清這些Java的基本概念也是必不可少的,死記硬背肯定是不行的,重在理解,理解它們之間的區別與聯繫,分別有哪些應用。希望對您有所幫助!更多內容請關注應屆畢業生考試網!一、先明白瞭解什麼是Java的四個方面。初學者先弄清這些Java的基本概念也是必不可少的...
-
java system類使用方法示例
常用的方法:複製代碼代碼如下:longcurrentTimeMillis();獲取當前時間的毫秒值voidexit();終止當前正在運行的Java虛擬機。複製代碼代碼如下:publicstaticvoidMethod(){longl=entTimeMillis();tln(l);();}描述系統屬性信息:Propertiesroperties();該方法獲取的`信...