⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wmlform.java

📁 j2me radius soket radius client
💻 JAVA
字号:
package org.gui.com;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import javax.microedition.lcdui.*;
import org.httpClient.com.RMStore;
import org.httpClient.com.HttpHandler;
import org.kxml2.io.KXmlParser;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
public class WMLForm extends Form implements CommandListener,ItemCommandListener {
	private int formID;
	private String message="";
	private Command[] itemEvent,itemLink;
	private int bi = 0,sib = 0,Lik = 0,imagei=0;//sib用于URL、method、message同步
	private StringItem[] StrItemEvent;
	private StringItem[] StrItemLink;
	private String[]   href,linkURL;
	private String[]     linkMessage;
	private int         lmsg=0;
	private String[]   ButtonURL,method;
	private TextField[] inputField;
	private int ini = 0, j = 0;
	private boolean  srcInput=true;
	private String[][] msgName; //发送的参数值的名字
	private String[] msg; //发送的参数的值
	private Display display = null;
	private ImageItem[]  imageItem;
	private RMStore cookie;
	private boolean Layout_left=true;
	private HttpHandler myHttpHandler;
	private HttpClient parentForm = null;
	private Command exit = new Command("exit",Command.BACK,1);
	public WMLForm(String ID,String title,Display display,RMStore cookie,HttpClient parentForm){
		 super(title);
	     this.cookie= cookie;
	     this.display = display;
	     this.parentForm = parentForm;
	     inputField = new TextField[6];
	     msgName = new String[30][];
	     msg = new String[30];
	     itemEvent = new Command[30];
	     itemLink   = new Command[30];
	     linkMessage = new String[30];
	     imageItem = new ImageItem[60];
	     StrItemLink = new StringItem[50];
	     StrItemEvent = new StringItem[50];
	     href          = new String[50];
	     ButtonURL           = new String[50];
	     method        = new String[50];
	    if(ID.equals("login")){               //强制在一个页面登录和退出
	     this.addCommand(exit);
	     this.setCommandListener(this);
	     }
	}
	public void commandAction(Command arg1,Displayable d){
		if(arg1 == exit){
			display.setCurrent(parentForm);
		}
    }
	public void commandAction( Command acd, Item item ){
		int i =0;
		while(itemLink[i]!=null){
		  if(acd == itemLink[i] && href[i]!=null){   //是link事件
			  myHttpHandler = new HttpHandler(display,href[i],linkMessage[i],
					                    "get",cookie,parentForm);
			  myHttpHandler.start();
			  break;
		  }
		  i++;
		}	
		i=0;
		while(itemEvent[i]!=null){     //按钮事件
			if(acd == itemEvent[i] && ButtonURL[i]!=null){
				message = getMessage(i);
				myHttpHandler = new HttpHandler(display,ButtonURL[i],message,
						                 method[i],cookie,parentForm);
				myHttpHandler.start();
				message = "";
				break;    	
			}
			i++;
		}
	}
	public void setSrcInput(boolean srcinput){
		srcInput= srcinput;
	}
    public void setMsg(String str){
    	 msg[sib] = str;
    	 sib++;
    }
    public void setLinkMessage(String str){
    	 linkMessage[lmsg] = str;
    	 lmsg++;  	 
    }
	public void newItemLink(String linkStr){//只是显示链接 要转向的页面ID在href数组里
		 StrItemLink[Lik] = new StringItem(null,linkStr.trim(),Item.HYPERLINK);
    	 StrItemLink[Lik] .addCommand(itemLink[Lik] = new Command(linkStr.trim(),Command.OK,1));
    	 StrItemLink[Lik] .setItemCommandListener(this);  
    	 if(Layout_left)
    		 StrItemLink[Lik].setLayout(Item.LAYOUT_LEFT);
        	else
        		StrItemLink[Lik].setLayout(Item.LAYOUT_CENTER);
    	 this.append(StrItemLink[Lik]);
       	 Lik++;
	}
	public void newItemEvent(String buttonName,boolean isanchor){
		if(isanchor){
			StrItemEvent[sib] = new StringItem(null,buttonName,Item.HYPERLINK);
		}else{
		   StrItemEvent[sib] = new StringItem(null,buttonName,Item.BUTTON);
		}
        StrItemEvent[sib] .addCommand(itemEvent[sib] = new Command(buttonName,Command.OK,1));
     	StrItemEvent[sib] .setItemCommandListener(this);   	 
     	this.append(StrItemEvent[sib]);  
	}
	public void newItemText(String TextStr){
    	StringItem text = new StringItem(TextStr.trim(),null);
    	if(Layout_left)
    	   text.setLayout(Item.LAYOUT_LEFT);
    	else
    	   text.setLayout(Item.LAYOUT_CENTER);
    	this.append(text);
	}
	public void setURLNMethod(String URLStr,String MethodStr){          //用于Sumbit发生与服务连接的事件
		 ButtonURL[sib] = URLStr;
		 method[sib] = MethodStr;
	}
	public void sethref(boolean lmsg,String hrefStr){                         //用于不同页间的转换
		if(!lmsg){
		   href[Lik]="http://localhost:8080/myWml/"+hrefStr+".wml";
		}else{
		   href[Lik] = hrefStr;	
		}			 
	}
	public void setMsgName(String msg){
	    msgName[sib][j]= msg;
   	    j++;
	}
	public void newInput(boolean password,String inputName){
		if(password){
 		   inputField[ini] = new TextField(inputName,null,100,TextField.PASSWORD);
 	   }else{
 		   inputField[ini] = new TextField(inputName,null,100,TextField.ANY);
 	   }	   
 	   this.append(inputField[ini]);
		   ini++;
	}
	public void newImage(ImageItem image){
	   imageItem[imagei] = image;
 	   this.append(imageItem[imagei]);
 	   imagei++;
	}
	public void setLayout(String layout){
   	     if(layout.equals("center")){
   	    	 Layout_left = false;
   	     }else{
   	    	Layout_left = true;
   	     }
	}
	public String getMessage(int index){
		int msgVStart = 0,msgVOver = 0; //用来标志$(name)
		int k = 0;                //循环变量
		int msgBstart = 0,msgBover = 0;//用来标志除$(name)之外的
		String tempmsgV = null,tempmsgN = null;
		
		boolean var = false;  //判断是否是上下文的变量的标志
		//       name=$(name)&password=$(password)
		for(int i=0; i < msg[index].length();i++){  //主要是为了处理有上文的变量
			if(msg[index].charAt(i)=='$'){
				   msgBover = i;
				   tempmsgN = msg[index].substring(msgBstart,msgBover);
				   message = message + tempmsgN;
				   msgVStart = i + 2;
				   var = true;
			}else if(msgVStart != 0 && msg[index].charAt(i)==')'){
				   msgVOver = i;
				   tempmsgV= msg[index].substring(msgVStart,msgVOver);
				   k =0;  
				   while(inputField[k]!=null){					   
					   if(tempmsgV.equals(inputField[k].getLabel())){
						   message = message + inputField[k].getString();
						   var = false;
						   break;
					   }
					   k++;
				   }			
				   i++;  
				   msgBstart = i;
			}
		}
		if(message.equals(""))         //说明没有上文变量全是直接赋值
			return msg[index];
		
		    return message;
     } 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -