关于用户登陆的界面的问题
各位大侠,我设计了一个手机用户登陆的应用 上面主要的是有三个 textField 分别是:账号,密码,服务器。
在应用程序启动的时候,光标是停在第一行,完成输入后按Enter键,这个时候默认的进行的换行操作(光标没有到密码框那一行)。而我想要实现的功能是每按一次enter 键就切换到下一个对话框,直到最后一行(服务器那一行)按enter键,才开始用户登陆。请各位帮我想想这个怎么实现。我写了一段代码,但是不成功。请各位高手帮我指点一下,谢谢!!
代码如下:
public class SetAccountDraw extends FancyBaseComponent implements CommandListener, OnTimeCallBack {
private Form f;
private TextField account, password, tf;
private Command okCommand = new Command("确定", Command.OK, 1);
private Command backCommand = new Command("退出", Command.BACK, 2);
wind.mobile.MainApp midapp;
boolean lock;
long time;
private int position = 0;
public SetAccountDraw(AppFramework app, int type, String strTitle, wind.mobile.MainApp midapp) {
super(new ScreenCanvas(app, type, strTitle));
this.midapp = midapp;
this.container.addFancyListener(this);
addForm("输入账号密码");
}
private void addForm(String title) {
f = new Form(title);
account = new TextField("帐号:", Constant.UserName, 50, TextField.ANY);
password = new TextField("密码:", Constant.Password, 50, TextField.PASSWORD);
tf = new TextField("服务器:", Constant.HostPort, 50, TextField.ANY);
if (Constant.NetType == 2)
tf = new TextField("服务器:", Constant.dlHost, 50, TextField.ANY);// Constant.dlHost
else
tf = new TextField("服务器:", Constant.HostPort, 50, TextField.ANY);// Constant.HostPort
f.append(account);
f.append(password);
f.append(tf);
f.addCommand(backCommand);
f.addCommand(okCommand);
f.setCommandListener(this);
AppFramework.instance.getDisplay().setCurrent(f);
}
public void OnTime(byte[] data2) {
try {
lock = false;
if (data2 != null) {
DataInputStream reader = new DataInputStream(new ByteArrayInputStream(data2));
AdvanceReader reader2 = new AdvanceReader(reader);
int update = reader2.readCInt();
int r = reader2.readCInt();
if (r == 0) {
System.out.println(" check success!");
Constant.UserName = account.getString();
Constant.Password = password.getString();
if (Constant.NetType == 2)
Constant.dlHost = tf.getString();
else
Constant.HostPort = tf.getString();
AppFramework.instance.saveSettings();
f.setTitle("帐号验证成功");
MainMenuDraw mmd = new MainMenuDraw(AppFramework.instance, AppFramework.SC_TYPE_MAIN, "万得资讯手机版1.0(Beta)");
AppFramework.instance.pushScreen(mmd);
} else {
int len = reader2.readCInt();
String title = reader2.readString(len);
Constant.UserName = account.getString();
Constant.HostPort = tf.getString();
Alert a = new Alert("登陆失败", title, null, AlertType.ERROR);
a.setTimeout(Alert.FOREVER);
AppFramework.instance.getDisplay().setCurrent(a, f);
password.setString("");
}
} else {
System.out.println(" check failed!");
if (Constant.NetType == 2)
Constant.dlHost = tf.getString();
else
Constant.HostPort = tf.getString();
// addForm("账号或密码不对");
password.setString("");
AppFramework.instance.getDisplay().setCurrent(a, f);
// addForm(title);
password.setString("");
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void commandAction(Command c, Displayable s) {
if (c == okCommand && (!lock || lock && System.currentTimeMillis() - time > 5000)) {
try {
MD5 md5 = new MD5();
String phoneNumber = "";
String version = "";
phoneNumber = Phone.getDevicePhoneNumber(false);
ApplicationDescriptor descriptor = ApplicationDescriptor.currentApplicationDescriptor();
version = CommonFunc.FilterString(descriptor.getVersion(), ".");
if (Constant.NetType == 2)
Constant.dlHost = tf.getString();
else
Constant.HostPort = tf.getString();
String url = "http://" + Constant.HostPort + "/WBBWebService/DataGetor.aspx?type=00000001" + "&u=" + account.getString() + "&p=" + md5.getMD5ofStr(password.getString()) + "&ph="
+ phoneNumber + "&v=" + version;
OnTimeMission otm = new OnTimeMission(this, url);
otm.start();
time = System.currentTimeMillis();
lock = true;
} catch (Exception e) {
}
} else if (c == backCommand) {
midapp.Destroy();
}
}
// 控制键盘
public synchronized void keyPressed(int keyCode) {
switch (keyCode) {
case Platform.KEY_ENTER : {
if (position < 2) {
this.position++;
this.keyPressed(Canvas.DOWN);
} else {
}
break;
}
case Platform.KEY_UP : {
if (this.position > 0)
this.position--;
break;
}
case Platform.KEY_DOWN : {
if (this.position < 2)
this.position++;
break;
}
}
}
}
在应用程序启动的时候,光标是停在第一行,完成输入后按Enter键,这个时候默认的进行的换行操作(光标没有到密码框那一行)。而我想要实现的功能是每按一次enter 键就切换到下一个对话框,直到最后一行(服务器那一行)按enter键,才开始用户登陆。请各位帮我想想这个怎么实现。我写了一段代码,但是不成功。请各位高手帮我指点一下,谢谢!!
代码如下:
public class SetAccountDraw extends FancyBaseComponent implements CommandListener, OnTimeCallBack {
private Form f;
private TextField account, password, tf;
private Command okCommand = new Command("确定", Command.OK, 1);
private Command backCommand = new Command("退出", Command.BACK, 2);
wind.mobile.MainApp midapp;
boolean lock;
long time;
private int position = 0;
public SetAccountDraw(AppFramework app, int type, String strTitle, wind.mobile.MainApp midapp) {
super(new ScreenCanvas(app, type, strTitle));
this.midapp = midapp;
this.container.addFancyListener(this);
addForm("输入账号密码");
}
private void addForm(String title) {
f = new Form(title);
account = new TextField("帐号:", Constant.UserName, 50, TextField.ANY);
password = new TextField("密码:", Constant.Password, 50, TextField.PASSWORD);
tf = new TextField("服务器:", Constant.HostPort, 50, TextField.ANY);
if (Constant.NetType == 2)
tf = new TextField("服务器:", Constant.dlHost, 50, TextField.ANY);// Constant.dlHost
else
tf = new TextField("服务器:", Constant.HostPort, 50, TextField.ANY);// Constant.HostPort
f.append(account);
f.append(password);
f.append(tf);
f.addCommand(backCommand);
f.addCommand(okCommand);
f.setCommandListener(this);
AppFramework.instance.getDisplay().setCurrent(f);
}
public void OnTime(byte[] data2) {
try {
lock = false;
if (data2 != null) {
DataInputStream reader = new DataInputStream(new ByteArrayInputStream(data2));
AdvanceReader reader2 = new AdvanceReader(reader);
int update = reader2.readCInt();
int r = reader2.readCInt();
if (r == 0) {
System.out.println(" check success!");
Constant.UserName = account.getString();
Constant.Password = password.getString();
if (Constant.NetType == 2)
Constant.dlHost = tf.getString();
else
Constant.HostPort = tf.getString();
AppFramework.instance.saveSettings();
f.setTitle("帐号验证成功");
MainMenuDraw mmd = new MainMenuDraw(AppFramework.instance, AppFramework.SC_TYPE_MAIN, "万得资讯手机版1.0(Beta)");
AppFramework.instance.pushScreen(mmd);
} else {
int len = reader2.readCInt();
String title = reader2.readString(len);
Constant.UserName = account.getString();
Constant.HostPort = tf.getString();
Alert a = new Alert("登陆失败", title, null, AlertType.ERROR);
a.setTimeout(Alert.FOREVER);
AppFramework.instance.getDisplay().setCurrent(a, f);
password.setString("");
}
} else {
System.out.println(" check failed!");
if (Constant.NetType == 2)
Constant.dlHost = tf.getString();
else
Constant.HostPort = tf.getString();
// addForm("账号或密码不对");
password.setString("");
AppFramework.instance.getDisplay().setCurrent(a, f);
// addForm(title);
password.setString("");
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void commandAction(Command c, Displayable s) {
if (c == okCommand && (!lock || lock && System.currentTimeMillis() - time > 5000)) {
try {
MD5 md5 = new MD5();
String phoneNumber = "";
String version = "";
phoneNumber = Phone.getDevicePhoneNumber(false);
ApplicationDescriptor descriptor = ApplicationDescriptor.currentApplicationDescriptor();
version = CommonFunc.FilterString(descriptor.getVersion(), ".");
if (Constant.NetType == 2)
Constant.dlHost = tf.getString();
else
Constant.HostPort = tf.getString();
String url = "http://" + Constant.HostPort + "/WBBWebService/DataGetor.aspx?type=00000001" + "&u=" + account.getString() + "&p=" + md5.getMD5ofStr(password.getString()) + "&ph="
+ phoneNumber + "&v=" + version;
OnTimeMission otm = new OnTimeMission(this, url);
otm.start();
time = System.currentTimeMillis();
lock = true;
} catch (Exception e) {
}
} else if (c == backCommand) {
midapp.Destroy();
}
}
// 控制键盘
public synchronized void keyPressed(int keyCode) {
switch (keyCode) {
case Platform.KEY_ENTER : {
if (position < 2) {
this.position++;
this.keyPressed(Canvas.DOWN);
} else {
}
break;
}
case Platform.KEY_UP : {
if (this.position > 0)
this.position--;
break;
}
case Platform.KEY_DOWN : {
if (this.position < 2)
this.position++;
break;
}
}
}
}
...全文
相关推荐
NLP.rar_NLP_登陆界面
总的来说,这个NLP软件提供了基础的分词功能,特别关注了正向增字最大匹配和未登陆词的处理,使用Java语言编写,具备用户友好的登陆界面,对于自然语言处理初学者或需要快速进行文本预处理的用户来说是一个实用的工具
详解Android登陆界面用户协议解决方案
Android 登陆界面用户协议解决方案本文将详解 Android 登陆界面用户协议解决方案,解决 Android 应用程序中用户协议阅读相关功能的实现问题。**标题解释**"详解 An
基于LABVIEW的登陆界面
在设计基于LABVIEW的登陆界面时,还需要考虑到用户体验和安全性问题。可以通过使用LABVIEW的图形化编程语言,创建一个友好的用户界面,让用户更方便地进行登陆和注册操作。
电脑登陆界面变换软件
同时,要了解如何在出现问题时恢复默认设置,以免影响系统正常运行。2. **兼容性**:软件应与用户的操作系统版本兼容。在安装前,确认软件支持的系统版本,以免出现不兼容问题导致系统不稳定。3.
qq登陆界面背景图片
在QQ这样的即时通讯软件中,登陆界面是用户最初接触应用的地方,因此,背景图片的选择和设计需要深思熟虑。首先,我们要理解QQ登陆界面背景图片的作用。


J2ME
