/*
* Created on 2004-6-20
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package com.north.phonebook.ui;
import com.north.phonebook.model.*;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import com.north.phonebook.PhoneBookMIDlet;
/**
* @author P2800
*
* TODO To change the template for this generated type comment go to Window -
* Preferences - Java - Code Style - Code Templates
*/
public class UIController implements DialogListener
{
private Display display;
private Alert alert;
private PhoneBookMIDlet phoneBookMIDlet;
private Model model;
private WaitCanvas waitCanvas;
private IndexFunctionUI indexFunctionUI;
private WelcomeUI infomationUI;
private NewPhoneUI newPhoneUI;
private ListPhoneUI listPhoneUI;
private SearchPhoneUI searchPhoneUI;
private DetailInfoUI detailInfoUI;
private MerchantGroupDetailInfoUI merchantGroupDetailInfoUI;
private ConfirmationDialog dialog;
private ListMerchantGroupUI listMerchantGroupUI;
private LoginUI loginUI;
public static class EventID
{
private EventID()
{
}
public static final byte EVENT_NEW_RECORD_SELECTED = 1;
public static final byte EVENT_SAVE_RECORD_SELECTED = 2;
public static final byte EVENT_NEWPHONE_BACK_MAINUI = 3;
public static final byte EVENT_LISTPHONE_BACK_MAINUI = 4;
public static final byte EVENT_SEARCHUI_BACK_MAINNUI = 5;
public static final byte EVENT_CLEAR_RECORD_YES = 6;
public static final byte EVENT_CLEAR_RECORD_NO = 7;
public static final byte EVENT_DELETE_RECORD = 8;
public static final byte EVENT_DELETE_RECORD_YES = 9;
public static final byte EVENT_DELETE_RECORD_NO = 10;
public static final byte EVENT_DISPLAY_INFOMATION = 11;
public static final byte EVENT_DETAIL_BACK_LIST = 12;
public static final byte EVENT_SEARCH_RECORD = 13;
public static final byte EVENT_SEARCH_RECORD_ANYWAY = 14;
public static final byte EVENT_DISPLAY_MERCHANT_INFOMATION = 15;
public static final byte EVENT_DETAIL_BACK_MERCHANT_LIST =16;
public static final byte ADD_NEW_RECORD = 100;
public static final byte SEARCH_RECORD = 101;
public static final byte CLEAR_RECORD = 102;
public static final byte LIST_RECORD = 103;
public static final byte HELP = 104;
public static final byte ListMerchantGroup = 105;
}
public UIController(PhoneBookMIDlet pbm)
{
this.phoneBookMIDlet = pbm;
}
public void init(Model model)
{
this.display = Display.getDisplay(phoneBookMIDlet);
this.model = model;
waitCanvas = new WaitCanvas("", true);
indexFunctionUI = new IndexFunctionUI(this);
infomationUI = new WelcomeUI();
newPhoneUI = new NewPhoneUI(this);
listPhoneUI = new ListPhoneUI(this);
loginUI = new LoginUI(this);
listMerchantGroupUI = new ListMerchantGroupUI(this);
searchPhoneUI = new SearchPhoneUI(this);
detailInfoUI = new DetailInfoUI(this);
merchantGroupDetailInfoUI = new MerchantGroupDetailInfoUI(this);
dialog = new ConfirmationDialog(display, null);
dialog.setDialogListener(this);
displayWelcome();
}
public void setCurrent(Displayable disp)
{
display.setCurrent(disp);
}
public void setCurrent(Alert alert, Displayable disp)
{
display.setCurrent(alert, disp);
}
public void displayWelcome()
{
setCurrent(infomationUI);
try
{
Thread.sleep(20);
} catch (InterruptedException e)
{
}
// setCurrent(indexFunctionUI);
setCurrent(loginUI);
}
public void showAlert(String message, Displayable next, AlertType type)
{
alert = new Alert(Title.alertTitle, message, null, type);
alert.setTimeout(1500);
setCurrent(alert, next);
}
public void handleEvent(int eventID)
{
System.out.println("eventID"+eventID);
switch (eventID)
{
case EventID.ADD_NEW_RECORD:
{
newPhoneUI.clear();
display.setCurrent(newPhoneUI);
break;
}
case EventID.CLEAR_RECORD:
{
dialog.setMessage(Title.delete_phonebook);
dialog.display(EventID.CLEAR_RECORD);
break;
}
case EventID.EVENT_CLEAR_RECORD_YES:
{
try
{
model.clearAllRecord();
display.setCurrent(indexFunctionUI);
} catch (ApplicationException e)
{
e.printStackTrace();
}
break;
}
case EventID.LIST_RECORD:
{
new Thread()
{
public void run()
{
try
{
waitCanvas.setMMessage(Title.gettingList);
display.setCurrent(waitCanvas);
Index[] index = model.listRecord();
listPhoneUI.init(index);
display.setCurrent(listPhoneUI);
} catch (ApplicationException e)
{
e.printStackTrace();
}
}
}.start();
break;
}
case EventID.ListMerchantGroup:
{
// new Thread()
// {
// public void run()
// {
try
{
Index[] index = model.listRecord();
listMerchantGroupUI.init(index);
display.setCurrent(listMerchantGroupUI);
}catch (Exception e) {
e.printStackTrace();
}
// }
// }.start();
break;
}
case EventID.SEARCH_RECORD:
{
searchPhoneUI.init();
display.setCurrent(searchPhoneUI);
break;
}
case EventID.EVENT_NEWPHONE_BACK_MAINUI:
{
display.setCurrent(indexFunctionUI);
break;
}
case EventID.EVENT_LISTPHONE_BACK_MAINUI:
{
display.setCurrent(indexFunctionUI);
break;
}
case EventID.EVENT_SEARCHUI_BACK_MAINNUI:
{
display.setCurrent(indexFunctionUI);
break;
}
case EventID.EVENT_DETAIL_BACK_LIST:
{
display.setCurrent(listPhoneUI);
break;
}
case EventID.EVENT_DETAIL_BACK_MERCHANT_LIST:
{
display.setCurrent(listMerchantGroupUI);
break;
}
default:
break;
}
}
public void handleEvent(int eventID, Object[] obj)
{
System.out.println("eventID"+eventID);
switch (eventID)
{
case EventID.EVENT_SAVE_RECORD_SELECTED:
{
try
{
Account account = (Account) obj[0];
if (model.isRecordExist(account.getUse
Java通讯录手机版源码.zip
需积分: 0 74 浏览量
更新于2022-08-28
收藏 210KB ZIP 举报
Java通讯录手机版源码是一个基于Java技术开发的手机应用程序,用于管理和存储联系人信息。这个项目可能使用了JavaFX或Android SDK来构建用户界面和实现移动设备上的功能。以下是关于这个源码的关键知识点:
1. **Java编程语言**:作为基础,Java是一种广泛使用的面向对象的编程语言,以其“一次编写,到处运行”的特性闻名。在本项目中,Java用于编写应用的核心逻辑和数据处理。
2. **移动应用开发**:这个项目专注于为手机平台开发应用,意味着它可能采用了特定于移动设备的API和框架。如果是Android应用,开发者可能使用了Android Studio集成开发环境(IDE)以及Android SDK。
3. **用户界面(UI)设计**:源码中包含的界面元素可能是用JavaFX或Android的XML布局文件定义的。JavaFX是Java的一个图形库,用于构建桌面和移动应用的富客户端界面。而Android使用XML来定义界面布局和组件。
4. **数据管理**:通讯录通常涉及到存储和检索联系人信息。这可能通过SQLite数据库实现,这是Android系统内置的轻量级数据库,用于本地数据存储。
5. **文件系统交互**:应用可能需要读写用户数据到设备的文件系统中,如导出/导入联系人列表,这需要理解Java的I/O流和文件操作。
6. **事件驱动编程**:用户与应用的交互,如点击按钮、滚动列表等,都是通过事件监听器处理的。Java提供了丰富的事件模型来支持这类编程。
7. **网络通信**:虽然未明确提及,但现代通讯录应用可能包含同步功能,将本地数据与云服务同步。这需要理解HTTP/HTTPS协议和JSON或XML数据格式,以及可能的RESTful API设计。
8. **权限管理**:在Android平台上,应用需要获取适当的权限才能访问联系人数据,这需要在AndroidManifest.xml文件中声明。
9. **测试与调试**:源码可能包含了单元测试或集成测试代码,使用JUnit或其他测试框架,以确保应用功能的正确性。此外,开发者可能利用Android Studio的调试工具进行问题排查。
10. **版本控制**:开发过程中通常会使用版本控制系统如Git来管理源码,以便追踪更改、协同工作和回滚到以前的版本。
要深入学习这个项目,你需要了解Java编程基础,熟悉Android开发环境或JavaFX,理解面向对象编程,以及对移动应用的数据存储和网络通信有一定认识。通过阅读和分析源码,你可以学习到实际项目中的最佳实践和设计模式,这对提升Java和移动开发技能大有裨益。
「已注销」
- 粉丝: 119
- 资源: 213
最新资源
- java毕设项目之ssm基于Vue.js的在线购物系统的设计与实现+vue(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm汽车养护管理系统+jsp(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm简易版营业厅宽带系统+jsp(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm绿色农产品推广应用网站+vue(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm人事管理信息系统+jsp(完整前后端+说明文档+mysql+lw).zip
- 自考04741《计算机网络原理》试题及答案2016-2018
- java毕设项目之ssm社区管理与服务的设计与实现+jsp(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm社区文化宣传网站+jsp(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm实验室耗材管理系统设计与实现+jsp(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm网络游戏公司官方平台设计与实现+jsp(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm蜀都天香酒楼的网站设计与实现+jsp(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm网上医院预约挂号系统+jsp(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm网上花店设计+vue(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm网上服装销售系统+jsp(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm小型企业办公自动化系统的设计和开发+vue(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm物流管理系统设计与实现+jsp(完整前后端+说明文档+mysql+lw).zip