輔助功能模組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讀取解析xml檔案例項
如何在Java中讀取解析檔案呢?下面小編為大家整理了java讀取解析xml檔案例項,希望能幫到大家!讀取本地的xml檔案,通過DOM進行解析,DOM解析的特點就是把整個xml檔案裝載入記憶體中,形成一顆DOM樹形結構,樹結構是方便遍歷和和操縱。DOM解析的特性就是讀取xml檔案轉換為dom...
-
全面理解java中的異常處理機制精選
一、java異常總結:異常就是程式執行時出現不正常執行情況1.異常由來:通過java的類的形式對現實事物中問題的描述,並封住成了物件其實就是java對不正常情況描述後的物件體現2.對於問題的劃分有兩種:一種是嚴重的問題,一種是非嚴重的問題對於嚴重的,java通過Error類來...
-
Java開發崗位面試題
為幫助參加Java開發崗位面試的朋友們做好準備,以下是本站小編搜尋整理的一份Java集合面試問題40個【附答案】,供參考練習,希望對大家有所幫助!想了解更多相關資訊請持續關注我們應屆畢業生考試網!一、Java基礎1、String類為什麼是final的。2、HashMap的原始碼,實現原...
-
計算機二級考試Java精選訓練題
下面是應屆畢業生考試網小編搜尋整理的計算機二級考試Java精選訓練題,希望對大家有所幫助。[簡答題]本題中,在下畫線上填寫程式碼,指定變數b為位元組型,變數f為單精度實型,變數l為64位整型。publicclassjaval{publicstaticvoidmain(String[-]args){b=49;f=8.9f;l=0xfedl...