实现方法一 applet实现页面是rmb.jsp,此页面是通过applet来实现人民币小写转换成大写的。此页面有三个变量需要在载入classes的时候进行初始化: <applet type="applet" id="myApplet" codebase = "." name="TestApplet" align="middle" code="lqh.rmb.Applicate.Rmb.class" width="560" height="25"> <param name="RGB_Back" value="241|247|251"> <param name="RGB_Fore" value="255|0|0"/> <param name="WIGTH" value="560"/> </applet> 变量RGB_Back是初始化背景色的,修改次变量可以使applet的背景色跟自己页面的风格一样;变量RGB_Fore是初始化字体的颜色; WIGTH要和applet的宽度一样,这个变量是保证显示的转换信息在中间显示。 此种方法不能传递值给页面trans.jsp,只能显示并且不能copy。 页面代码如下: <html> <head>人民币小写转换成大写</head> <%@ page contenttype="text/html;charset=gb2312" %> <SCRIPT language=JavaScript> function trans(){ //取变量的值 var aaa=document.rmb. rmb_test.value; //给applet赋变量的值 document.myApplet.setRMB(aaa); document.myApplet.repaint(); return true; } </SCRIPT> <body> <form name="rmb"> 输入金额:<input type=”text” name=”rmb_test” onkeyup=”trans()”><br><hr> <%@ include file="../rmb.jsp" %> </form> </body> </html> 实现方法二 applet实现页面是rmb.jsp,此页面是通过applet来实现人民币小写转换成大写的。此页面不需要变量进行初始化,在页面上不显示applet画的图像;而可以把转换的值传递给页面变量: <applet type="applet" id="myApplet" codebase = "." name="TestApplet" align="middle" code="lqh.rmb.Applicate.Rmb.class" width="0" height="0"> </applet> 页面trans.jsp代码如下: <html> <head>人民币小写转换成大写</head> <%@ page contenttype="text/html;charset=gb2312" %> <%@ include file="../rmb.jsp" %> <SCRIPT language=JavaScript> function trans(){ var aaa=document.rmb. rmb_test.value; //得到转换的值 var rmb = document.myApplet.getRMB(aaa); document.rmb. rmb_result.value = rmb; return true; } </SCRIPT> <body> <form name="rmb"> 输入金额:<input type=”text” name=”rmb_test” onkeyup=”trans()”><br> 转换结果:<input type=”text” name=”rmb_result” ><br> </form> </body> </html> 附录 1.applet代码: package lqh.rmb.Applicate; import java.awt.*; import java.awt.event.*; import java.applet.*; import lqh.rmb.*; public class Rmb extends Applet { private boolean isStandalone = false; private RMBConversion rmb=new RMBConversion(); private String var0 = ""; private String re_rmb=""; private String wigth ="0"; private String back_color; private String fore_color; public String getParameter(String key, String def) { return isStandalone ? System.getProperty(key, def) : (getParameter(key) != null ? getParameter(key) : def); } public void paint(Graphics g) { if(wigth.equals("0")){ wigth = "560"; } int i= Integer.parseInt(wigth); if(checkNum(var0)){ if(var0.endsWith(".")){ var0 = var0.substring(0,var0.length()-1); } re_rmb= rmb.RMB(var0); }else{ re_rmb="输入错误:"+var0; } int middel =(i - re_rmb.length()*12)/2; this.setBackground(new Color(getColor(back_color)[0], getColor(back_color)[1], getColor(back_color)[2])); this.setForeground(new Color(getColor(fore_color)[0], getColor(fore_color)[1], getColor(fore_color)[2])); g.drawString(re_rmb,middel,20); } public void init() { try { back_color = this.getParameter("RGB_Back", "241|247|251"); }catch(Exception e) {e.printStackTrace();} try { fore_color = this.getParameter("RGB_Fore", "255|0|0"); }catch(Exception e) {e.printStackTrace();} try { wigth = this.getParameter("WIGTH", "0"); }catch(Exception e) {e.printStackTrace();} try { jbInit(); }catch(Exception e) { e.printStackTrace(); } } private void jbInit() throws Exception { this.setBackground(new Color(getColor(back_color)[0], getColor(back_color)[1], getColor(back_color)[2])); } public void setRMB(String rmb_temp){ var0 = rmb_temp; } public String getRMB(String rmb_temp){ if(checkNum(rmb_temp)){ if(rmb_temp.endsWith(".")){ rmb_temp = rmb_temp.substring(0,rmb_temp.length()-1); } re_rmb= rmb.RMB(rmb_temp); }else{ re_rmb="输入错误:"+rmb_temp; } return re_rmb; } public boolean checkNum(String str){ String numChar="0123456789."; boolean breakBoolean = false; for(int i=0;i<str.length();i++){ if(numChar.indexOf(str.substring(i,i+1))<0){ breakBoolean =true; } if(breakBoolean) break; } if(breakBoolean){ return false; }else{ if(str.startsWith(".")){ return false; }else{ return true; } } } public String[][] getParameterInfo() { String[][] pinfo = { {"RGB_Back", "String", ""}, {"RGB_Fore", "String", ""}, {"WIGTH", "String", ""}, }; return pinfo; } private int[] getColor(String rgb){ int[] rgb_return = new int[3]; int index =0,nextIndex=0,len=0; while((index =rgb.indexOf("|",nextIndex))>-1){ rgb_return[len]=getInt(rgb.substring(nextIndex,index)); nextIndex=index+1; len++; } rgb_return[len]=getInt(rgb.substring(nextIndex)); return rgb_return; } private int getInt(String str){ try{ return Integer.parseInt(str); }catch(Exception e){ return 0; } } } 2.java包,欢迎索取lqhboy@163.com |