数据结构课设之航空订票系统(Java)下载链接在文末
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?下載鏈接在文末
題目選擇 :航空訂票系統
開發語言 :Java
代碼編寫工具: Eclipse
與數據結構相關知識:隊列,棧,KMP匹配算法。
一、設計思路:
? ? ?1,首先在項目工程中創建Main Frame.java作為主窗口文件,設置窗口大小為,主題樣式,標題欄,窗口圖標,并添加到當前窗口中背景以及窗口可見性,之后創建InitGlobalFont方法,該方法設置全局字體的樣式和大小。
? ? ?2,之后在項目工程中創建MainPanel. Java文件,該文件用于切換界面,首先在該文件中定義一個jpanel,設置為卡片布局,之后將其添加到MainFrame中。
? ? ?3,在項目工程中創建FunctionPanel.java類,并將其添加到MainPanel.java的CardLayout中,并通過CardLayout.Show方法設置FunctionPanel為默認顯示。在FunctionPanel.java中,創建三個圖片按鈕,,分別代表航班管理,訂票,退票,以及一個退出按鈕,并將它們添加點擊事件。
? ? 4,在項目工程中創建FunctionPanel.java文件,創建data文件夾,在該文件夾內創建program-icon和program-store文件夾,分別用于存放圖標和數據,在program-store文件夾中創建flight.txt文件,寫入所有的航班信息,每一行代表一個航班信息。
? ?5,FunctionPanel.java為航班管理界面,在該文件中,首先創建一個表格table,逐行讀取flight.txt的所有信息,將其存入隊列中,再從隊列彈出將其添加到表格中。創建五個按鈕,分別為“添加航班”,“刪除航班”,“修改航班”,“刷新”,“返回”,以及一個文本框和搜索按鈕。
- 點擊“添加航班”,將彈出添加窗口,在窗口中輸入航班信息,點擊確定即可將該信息添加到flight.txt文件中,并刷新表格。
- 選中某表格中的某一條信息,點擊“刪除航班”,將會獲取該行中的航班號,根據該航班號與flight.txt文件進行逐行匹配,匹配成功則將其刪除,并刷新表格。
- 選中某一條信息 點擊“修改航班”,過程與刪除航班類似,匹配成功后對該行覆蓋寫入,并刷新表格。
- 點擊“刷新”,會重新讀取文件,將其顯示在表格中。
- 點擊“返回”,會使MainPanel的CardLayout顯示FunctionPanel,即主界面。
- 在文本框中輸入關鍵詞,點擊“搜索”按鈕,會將從文本框獲取的數據與flight.txt進行逐行匹配,將匹配成功的信息存入隊列中,之后將隊列中的信息輸出在表格中。
? ?6,在項目工程中創建addPanel.java,作為航班訂票界面,在該界面中創建一個表格,以及三個按鈕,分別為“訂票”,“候補乘客”,“返回”,在data/ program-store文件夾中創建book-list.txt,用于存儲訂單,創建candidata-list.txt文件,用于存儲候補乘客。表格中顯示當前所有航班,點擊某一條信息,點擊“訂票”,輸入乘客信息,數量,如果剩余票充足,則將當前的航班號,乘客信息,數量寫入到book-list.txt文件中,并修改light.txt文件的該航班剩余票數。若余票不足,則提示是否列入候該航線的候補名單中。選中某一條航班,點擊“候補乘客”,則會讀取candidate-list.txt文件,并彈出新窗口以表格的形式顯示。點擊“返回”,則返回到主界面,點擊“搜索”,則會根據輸入的關鍵字和日期與flight.txt中的航班信息進行匹配,將所有匹配成功的信息存入隊列中,清空表格,之后將隊列中的信息輸出在表格中,并以時間先后排序。
? ?7,在項目工程中創建deletePanel.java,作為航班退票界面,在該界面中創建一個表格,,以及三個按鈕,分別為“退票”,“候補乘客”,“返回”,以及一個文本框和“搜索”按鈕,表格中顯示當前所有訂單,選中某一條訂單,點擊“退票”,則會根據航班號與book-list.txt文件里航班號匹配,匹配成功則刪除該訂單,并重新統計該航班剩余票量,并將剩余票量寫入到flight.txt中。之后檢查是否有候補乘客,如果有則將剩余票給與候補乘客,以排隊順序優先,并刪除其在候補名單candidate-list的信息。
? 8,最后,在FunctionPanel中的點擊事件中創建三個判斷語句,創建三個標志位為true,當點擊事件為searchPanel時,如果標志位為true,則向MainPanel中的CardLayout添加該界面,將標志位置為false,之后顯示該界面,其它兩個與其相同。
二、需求分析
?1.課程設計目的
? ? (1).熟練掌握堆隊列和棧的原理和應用。
? ? (2).熟悉Java語言的程序設計與開發,查缺補漏,提高編程能力。
?2.設計任務
? ? ?線性表
? ? ? 本次課程設計使用的線性結構為數組,用于臨時存儲用戶輸入的訂單信息,退票信息,最后將其寫入到文件中。
? ? 特殊線性表
? ? ? ?本次課程設計使用的特殊線性結構為隊列,程序中的表格數據通過從文件中讀取,將需要的數據臨時存儲在隊列中,在將隊列的數據逐條輸出到表格中。
? ??非線性結構
? ? ? ?在本次課程設計中,使用的非線性結構為二叉樹,在進行模糊搜索時,通過二叉樹遍歷數據可提高搜索速度。
? ? ?查找和排序
本程序的查找功能采用了KMP搜索搜索算法以及二叉樹遍歷,排序采用了冒泡排序法。
?3.設計環境
? ? ? ?本次設計和開發的平臺為Windows10,使用Java語言開發,編譯環境為JDK1.8,使用的開發工具為eclipse IDE 2022-03。
三、概要設計
?1.數據結構設計
? ? ? (1)線性表數據結構設計
? ?static String[] tab_title = {}//用于存放表頭
? ?//用于將隊列轉化為數組的方法
? ?public static String[][] queue_to_array(Queue<String[]> queue){
? ? ? ? ? int count=0;//定義一個int型數據充當計數器
? ? ? ? ? //用于存儲隊列數據的數組
? ? ? ? ? String[][] get_queue_data=new String[queue.size()][7];
? ? ? ? ? //判斷隊列中是否還有數據
? ? ? ? ? while (queue.size()>0){
? ? ? ? ? ? ? ? ?//從隊列彈出數據并存儲到數組中
? ? ? ? ? ? ? ? ? get_queue_data[count]=queue.poll();
? ? ? ? ? ? ? ? ? count++;
? ? ? ? ? ?}
? ? ? ? ? //返回數組
? ? ? ? ? return get_queue_data;
}
(2)特殊線性表數據結構設計
? ?public static?Queue<String[]> queue =
? ?new LinkedList<String[]>();//用于存儲讀取到的符合條件的數據
? ?//定義一個讀取文件的方法
? ?public static void read_txt(String src,Queue<String[]> queue){
? ? ? ? ? ? ? ? ?try {
? ? ? ? ? ? ? ? ? ? ? ? //根據傳入的地址找到文件
? ? ? ? ? ? ? ? ? ? ? ? File file = new File(src);
? ? ? ? ? ? ? ? ? ? ? ? //定義一個FileReader
? ? ? ? ? ? ? ? ? ? ? ? ?FileReader fileReader = new FileReader(file); ?
? ? ? ? ? ? ? ? ? ? ? ? ?//定義一個LineNumberReader用于讀取行數據
? ? ?LineNumberReader reader = new LineNumberReader(fileReader);
? ? ? ? ? int number = 1;
? ? ? ? ? String txt = ""; //存儲得到的行數據
? ? ? ? ? int lines = 0; //從第一行開始讀取
????????while (txt != null) {//如果讀取到的數據非空
????????????lines++;//行數加一
????????????txt = reader.readLine();//繼續讀取下一行
//當讀取到的數據不為空時
?if (lines > number&&txt!=null&&!txt.trim().equals("")) {
? ? ? ? ? ? ? //將當前數據以“/”分割并存儲到數組中
???????????? String[] data=txt.split("/");
? ? ? ? ? ? ?//向隊列中送入讀取到的數據
???????????? queue.offer(data);
????????????}
???? }
?//關閉LineNumberReader
? ? reader.close();
?//關閉fileReader
? ? fileReader.close();
}catch (IOException e) {
? ? ? ?System.out.println("讀取文件出錯");
? ? ? }
}
(3)非線性結構數據結構設計
本次課程設計用到的非線性結構只有堆,因為堆是一個完全二叉樹,所以在本次課程設計中采取的是將堆映射到數組上的方式來實現邏輯上的堆結構的。
(4)查找和排序數據結構設計
? ? ? public static void filter_txt
?(String src,String starting_point,String end_point,
?String departure_time,Queue<String[]> queue){//篩選航線方法
? ? ? ? ? ? try {
? ? ? ? ? ? ? //根據傳入的地址找到文件
? ? ? ? ? ? ? ? ?File file = new File(src);
? ? ? ? ? ? ? //定義一個FileReader
? ? ? ? ? ? ?FileReader fileReader = new FileReader(file); ?
???LineNumberReader reader = new LineNumberReader(fileReader);
? ? ? ? ?int number = 1;
? ? ? ? ?String txt = "";
? ? ? ? ?int lines = 0;
????????while (txt != null) {//如果讀取到的數據非空
????????????lines++;
????????????txt = reader.readLine();//繼續讀取下一行
??????if (lines > number&&txt!=null&&!txt.trim().equals("")) {
//將讀取到的數據以“/”分割并存入數組中
???????????? String[] data=txt.split("/");
?????if(starting_point.trim().equals(data[1])&&end_point.trim().equals(data[2])&&departure_time.trim().equals(data[3].substring(0, 10))) //將符合條件的數據存儲隊列中
???????????? queue.offer(data);
????????????}
????????}
? ? ?//關閉文件流
? ? ? reader.close();
? ? ?fileReader.close();
? }catch (IOException e) {
? ? ? ?System.out.println("讀取文件出錯");
? ?}
}
2.模塊設計
? (1)線性表模塊設計
? ? ? 本次課程設計所采用的線性結構就是數組,而數組是在Java語言中自帶的一種結構,直接使用即可,無需做額外設計。
??(2)特殊線性表模塊設計
? ? ? 本課程設計采用的特殊線性表是隊列,在隊列中存儲的是來自文件的數據,每一條數據需要以數組的形式存儲,所以隊列中存儲的為數組,所以我們定義了Queue<String[]>這樣的隊列。
??(3)非線性結構模塊設計
? ? ?在本次課程設計中,使用的非線性結構為二叉樹,在進行模糊搜索時,通過二叉樹遍歷數據可提高搜索速度。
?(4)查找和排序模塊設計
? ? 本程序的查找功能采用了KMP搜索搜索算法以及二叉樹遍歷,排序采用了冒泡排序法,此模塊主要用于用戶輸入的信息模糊搜索航班,并將最終結果以時間先后進行排序。
三、詳細設計
??1.主程序界面及功能的詳細設計
? ? ? ?首先在項目工程中創建Main Frame.java作為主窗口文件,設置窗口大小為,主題樣式,標題欄,窗口圖標,并添加到當前窗口中背景以及窗口可見性,之后創建InitGlobalFont方法,該方法設置全局字體的樣式和大小。在項目工程中創建FunctionPanel.java類,并將其添加到MainPanel.java的CardLayout中,并通過CardLayout.Show方法設置FunctionPanel為默認顯示。在FunctionPanel.java中,創建三個圖片按鈕,分別代表航班管理,訂票,退票,以及一個退出按鈕,將按鈕添加到界面中,設定其位置,并將它們添加點擊事件,點擊航班管理將MainPanel.java的CardLayout.show()設定為SearchPanel,點擊訂票設定為AddPanel,點擊訂單管理將其設為RefundPanel。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??圖1 主程序模塊流程圖
?2.航班管理模塊界面及功能詳細設計
? ? ? ?FunctionPanel.java為航班管理界面,在該文件中,首先創建一個表格table,逐行讀取flight.txt的所有信息,將其存入隊列中,再從隊列彈出將其添加到表格中。創建五個按鈕,分別為“添加航班”,“刪除航班”,“修改航班”,“刷新”,“返回”,以及一個文本框和搜索按鈕。點擊“添加航班”,將彈出添加窗口,在窗口中輸入航班信息,點擊確定即可將該信息添加到flight.txt文件中,并刷新表格。選中某表格中的某一條信息,點擊“刪除航班”,將會獲取該行中的航班號,根據該航班號與flight.txt文件進行逐行匹配,匹配成功則將其刪除,并刷新表格。選中某一條信息 點擊“修改航班”,過程與刪除航班類似,匹配成功后對該行覆蓋寫入,并刷新表格。點擊“刷新”,會重新讀取文件,將其顯示在表格中。點擊“返回”,會使MainPanel的CardLayout顯示FunctionPanel,即主界面。在文本框中輸入關鍵詞,點擊“搜索”按鈕,會將從文本框獲取的數據與flight.txt進行逐行匹配,將匹配成功的信息存入隊列中,之后將隊列中的信息輸出在表格中。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???圖2 航班管理模塊流程圖
3.????機票預定模塊界面及功能詳細設計
? ? ? ?在項目工程中創建addPanel.java,作為航班訂票界面,在該界面中創建一個表格,以及三個按鈕,分別為“訂票”,“候補乘客”,“返回”,在data/ program-store文件夾中創建book-list.txt,用于存儲訂單,創建candidata-list.txt文件,用于存儲候補乘客。表格中顯示當前所有航班,點擊某一條信息,點擊“訂票”,輸入乘客信息,數量,如果剩余票充足,則將當前的航班號,乘客信息,數量寫入到book-list.txt文件中,并修改light.txt文件的該航班剩余票數。若余票不足,則提示是否列入候該航線的候補名單中。選中某一條航班,點擊“候補乘客”,則會讀取candidate-list.txt文件,并彈出新窗口以表格的形式顯示。點擊“返回”,則返回到主界面,點擊“搜索”,則會根據輸入的關鍵字和日期與flight.txt中的航班信息進行匹配,將所有匹配成功的信息存入隊列中,清空表格,之后將隊列中的信息輸出在表格中,并以時間先后排序。
圖3 航班管理模塊流程圖
? 4.???????訂單管理模塊界面及功能詳細設計
? ? ? ?在項目工程中創建deletePanel.java,作為航班退票界面,在該界面中創建一個表格,以及三個按鈕,分別為“退票”,“候補乘客”,“返回”,以及一個文本框和“搜索”按鈕,表格中顯示當前所有訂單,選中某一條訂單,點擊“退票”,則會根據航班號與book-list.txt文件里航班號匹配,匹配成功則刪除該訂單,并重新統計該航班剩余票量,并將剩余票量寫入到flight.txt中。之后檢查是否有候補乘客,如果有則將剩余票給與候補乘客,以排隊順序優先,并刪除其在候補名單candidate-list的信息。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖4 訂單模塊流程圖
四、測試分析
? 1.???????主程序界面及功能測試分析
? ? ? ? ?首先對主頁測試分析,如圖 5所示:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖5 航空訂票系統主界面
? ? ? ?窗口可以正常出現,圖片的點擊事件可以正常響應,當點擊航班檢索時,頁面正常切換到航班檢索界面,如圖6。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖6 航班檢索界面
? ? ? ?點擊返回可以正常返回主頁,并沒有出現頁面卡死或無法切換的情況,由此可以說明主界面沒有問題。
? ? ??
? ? ?其功能實現的主要代碼是:
? ? ? public void mouseClicked(MouseEvent e) {
? ? ? ? ? ?// TODO Auto-generated method stub
? ? if(e.getSource().equals(icon_search)||e.getSource().equals(icon_search_text)) {
? ? ? ? ? ? if(searchPanel_on)
? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ? ?SearchPanel searchPanel=new SearchPanel();
? ? ? ? ? ? ? ? ? ?MainPanel.jPanel.add(searchPanel,"searchPanel");
? ? ? ? ? ? ? ? ? searchPanel_on=false;
? ? ? ? ? ? ?}
? ? ? MainPanel.cardLayout.show(MainPanel.jPanel,"searchPanel");
? ? ? ?}else
? ? if(e.getSource().equals(icon_add)||e.getSource().equals(icon_add_text)) {
? ? ? ? ? ? ? ? ? if(addPanel_on)
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? AddPanel addPanel=new AddPanel();
? ? ? ? ? ? ? ? ? ? ? ? MainPanel.jPanel.add(addPanel,"addPanel");
? ? ? ? ? ? ? ? ? ? ? ? addPanel_on=false;
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ?MainPanel.cardLayout.show(MainPanel.jPanel,"addPanel");
? ? ? ? ? ? ? ? ?}else
? ? ? ? ? ?if(e.getSource().equals(icon_delete)||e.getSource().equals(icon_delete_text)) {
? ? ? ? ? ? ? ? ? ? ? ? if(refundPanel_on)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? RefundPanel refundPanel=new RefundPanel();
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? MainPanel.jPanel.add(refundPanel,"refundPanel");
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? refundPanel_on=false;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }
?MainPanel.cardLayout.show(MainPanel.jPanel,"refundPanel");
? ? ? ?}
}
2.???????航班管理模塊功能測試分析
? ? ?下面進行航班檢索模塊的測試:
? ? ?點擊航班檢索,頁面將切換到航班檢索界面,如圖7所示:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖7 航班檢索界面
? ? ? ? 點擊添加航班,將彈出添加界面,如圖8所示,輸入所有信息后點擊確定即可添加,表格自動刷新。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??圖8 航班添加窗口?
? ? ? ?點擊刪除航班,將彈出提示是否刪除,點擊確定后,即可刪除該航班。
? ? ? ?在搜索框中輸入關鍵信息,點擊“搜索”即可查詢,查詢到的結果顯示在表格中。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??圖9 航班查詢功能
? ? ? ? ? 其功能實現的主要代碼是:
?public void delete() {
? ? int count=table.getSelectedRow();
? ? if(count>=0) {
? ? ?String getname= table.getValueAt(count, 0).toString();
? ? FileOperations.delete_txt_line("src/data/storage/flight.txt", getname, false);
? ? ?refresh_table();
}else {
? JOptionPane.showMessageDialog(null, "請選中列表中的某一行!!", "提示", 0);
? }
}
? ?public void search_table() {
?FileOperations.search_txt_line("src/data/storage/flight.txt",search_bar.getText(),Constant.queue,0);
? ? ?table_mode =new DefaultTableModel();
? ? ?table_mode.setColumnIdentifiers(tab_title);
? ? ?while(Constant.queue.size()>0) {
? ? ? ?table_mode.addRow(Constant.queue.poll());
? ? ? }
? ? ? table.setModel(table_mode);
? ? ? }
public void actionPerformed(ActionEvent e) {
String?get_data="\n"+flight_number.getText()+"/"
+starting_station.getText()+"/"+terminal_station.getText()+"/"+departure_time.getText() +"/"+arrival_time.getText()+"/"+crew_quota.getText()+"/"+total_votes.getText()+"/"+total_votes.getText();
?FileOperations.write_txt("src/data/storage/flight.txt",get_data);
? ?refresh_table();
? ?add_window_JFrame.dispose();
}
3 .機票預定模塊功能測試分析
? ? 下面進行機票預訂模塊的測試:
? 點擊機票預訂,頁面將切換到機票預訂界面,如圖9所示:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??圖9 機票預定模塊界面
? ? ? ?選中某一航班,點擊“訂票”,頁面將彈出機票預訂窗口,如圖10所示,輸入信息,點擊確定即可訂票。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖10 機票預定窗口
? ? ? ? 選中某一航班,點擊“訂單”,頁面將彈出當前航班訂單窗口,如圖11所示,顯示當前成功購票和候補購票名單。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖11 航班當前訂單窗口
? ? ? ? 在右上角的文本框中輸入起始站,終點站,出發日期,點擊“搜索”,即可顯示滿足條件的航班,如圖12所示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖12 航班篩選功能
其功能實現的主要代碼是:
public void search_table() {
?FileOperations.filter_txt("src/data/storage/flight.txt",starting_station_textField.getText(),terminal_station_textField.getText(),departure_time_textField.getText(),Constant.queue);
? ?table_mode =new DefaultTableModel();
? ?table_mode.setColumnIdentifiers(tab_title);
? ?while(Constant.queue.size()>0) {
? ? table_mode.addRow(Constant.queue.poll());
?}
? table.setModel(table_mode);
?}
?public void delete() {
? ?int count=table.getSelectedRow();
? ?if(count>=0) {
? ? ?String getname= table.getValueAt(count, 0).toString();
? ? FileOperations.delete_txt_line("src/data/storage/flight.txt", getname, false);
? ?refresh_table();
?}else {
JOptionPane.showMessageDialog(null, " ????請選中列表中的某一行!!", "提示", 0);}}
4.???????訂單管理模塊功能測試分析
?下面進行訂單管理模塊的測試:
? 點擊訂單管理,頁面將切換到訂單管理界面,如圖13所示:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??圖13 訂單管理模塊界面
? ? ? ?選中某一航班,點擊“退票”,將彈出退票界面,如圖14所示,輸入退票數量,點擊“確定”,即可完成退票。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??圖14 訂單管理模塊
? ? ? 選中某一航班,點擊“詳情”,將彈出該航班詳細信息界面,如圖15所示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖15 航班詳情界面
? ? ? ?在搜索框中輸入關鍵信息,點擊搜索即可顯示搜索到的訂單,具體界面上文已有所提到,這里不多贅述。
? ? ? ?其功能實現的主要代碼是:
public static void delete_line(JTable table) {
? ?int count=table.getSelectedRow();
? ?if(count>=0) {
?if(JOptionPane.showConfirmDialog(null, "是否刪除當前所選候補信息", "注意", JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION) {
?FileOperations.delete_txt_line("src/data/storage/alternate.txt",table.getValueAt(count, 0).toString(),true);
? ? ? ? ? ? ? ? ? JOptionPane.showMessageDialog(null, " ???刪除成功!!", "提示", 1);
? ? ? ? ? ? refresh_table("src/data/storage/alternate.txt", table_mode2, table2, order_tab_title2,true);
}
}else {
? ?JOptionPane.showMessageDialog(null, " ????請選中列表中的某一行!!", "提示", 1);
? ?}
}
public void actionPerformed(ActionEvent e) {
?if(e.getSource().equals(refund_button)) {//退票
? ?OrderWindow.refund_window(table_mode1,table1,order_tab_title1);
?}else if(e.getSource().equals(details_button1)) {//詳情1
OrderWindow.details_window(table1);
}else if(e.getSource().equals(booking_button)){
? ? booking();
? }else if(e.getSource().equals(delete_button)) {//刪除
? ? delete_line(table2);
? }else if(e.getSource().equals(refresh_button1)||e.getSource().equals(refresh_button2)) {//刷新
? ? refresh_table("src/data/storage/booking.txt", table_mode1, table1, order_tab_title1,true);
? ? refresh_table("src/data/storage/alternate.txt", table_mode2, table2, order_tab_title2,true);
?}else if(e.getSource().equals(return_button1)||e.getSource().equals(return_button2)) {//返回
? ? ? ? MainPanel.cardLayout.show(MainPanel.jPanel,"featuresPanel");
?}else if(e.getSource().equals(search_button1)) {
?FileOperations.search_txt_line("src/data/storage/booking.txt",search_bar1.getText(),Constant.queue,0);
?refresh_table("src/data/storage/booking.txt", table_mode1, table1, order_tab_title1,false);
?}else if(e.getSource().equals(search_button2)) {
?refresh_table("src/data/storage/alternate.txt", table_mode2, table2, order_tab_title2,false);
? }
}
下載鏈接:數據結構課設之航空訂票系統(Java).zip-Java文檔類資源-CSDN下載
??
總結
以上是生活随笔為你收集整理的数据结构课设之航空订票系统(Java)下载链接在文末的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [密码学基础][每个信息安全博士生应该知
- 下一篇: fasttext的基本使用 java 、