- 浏览: 524975 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
gaolegao2008:
如果报 is_volum 列名找不到之类的,我是从新部署了一个 ...
spring quartz 定时器报错 -
gaolegao2008:
部署到linux上时,还有一种情况就是mysql数据库区分大小 ...
spring quartz 定时器报错 -
qq123zhz:
yahier 写道 对我有帮助,但我看的一个demo程序,却没 ...
spring quartz 定时器报错 -
qq123zhz:
这个要在eclipse的插件环境下运行的,你不懂eclipse ...
GEF 自动布局 -
qq123zhz:
这个很久了,不记得啥时候写的了
json转为Map
收藏列表
- 全部 [19]
- 默认 [3]
- android [1]
- python [1]
- jquery [1]
- java [2]
- 11 [1]
- flex [5]
- 集群 [1]
- displaytag [1]
- rcp [1]
- jquery loading [1]
- java验证javascript [1]
标题 | 标签 | 来源 | |
jslint | java验证javascript | 利用jslint对javascript进行语法校验 | |
package com.yonge.validateScript; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.List; import com.googlecode.jslint4java.Issue; import com.googlecode.jslint4java.JSLint; import com.googlecode.jslint4java.JSLintBuilder; import com.googlecode.jslint4java.JSLintResult; import com.googlecode.jslint4java.Option; /** * 利用JSLint验证js的正确性 * @author wb-gaoy * @version $Id: JSLintTest.java,v 0.1 2012-12-17 下午4:46:23 wb-gaoy Exp $ */ public class JSLintTest { public static void main(String[] args) throws IOException { JSLintBuilder builder = new JSLintBuilder(); //使用默认的jslint.js进行初始化 JSLint jsLint = builder.fromDefault(); //自定义jslint.js进行初始化 /*JSLint jsLint = builder.fromFile(new File(JSLintTest.class.getResource("/").getPath() + "/resource/webjslint.js"));*/ //过滤的警告选项 jsLint.addOption(Option.SLOPPY); jsLint.addOption(Option.WHITE); jsLint.addOption(Option.EQEQ); jsLint.addOption(Option.NOMEN); jsLint.addOption(Option.UNDEF); jsLint.addOption(Option.CONTINUE); jsLint.addOption(Option.ON); jsLint.addOption(Option.REGEXP); jsLint.addOption(Option.VARS); jsLint.addOption(Option.PLUSPLUS); //jsLint.lint(String systemId, Reader reader)第一个参数是指需要检查的文件名称,第二个参数是文件的内容 JSLintResult result = jsLint.lint("test.js", new FileReader(new File(ValidateScript.class .getResource("/").getPath() + "/resource/test.js"))); List<Issue> issues = result.getIssues(); System.out.println(String.format("总共有%1$d个问题", issues.size())); if (issues != null && issues.size() > 0) { for (Issue issue : issues) { System.out.println(String.format("第%1$s行的%2$s出现问题,原因:%3$s", issue.getLine(), issue.getEvidence(), issue.getReason())); } } } } |
|||
RC创建java工程 | rcp | Eclipse插件开发中创建java工程的代码 | |
package com.wisoft.magicube.codegenerator.popup.actions; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.eclipse.core.resources.ICommand; import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProjectDescription; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IWorkspace; import org.eclipse.core.resources.IWorkspaceRoot; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.SubProgressMonitor; import org.eclipse.jdt.core.IClasspathEntry; import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.core.IPackageFragment; import org.eclipse.jdt.core.IPackageFragmentRoot; import org.eclipse.jdt.core.JavaCore; import org.eclipse.jdt.core.JavaModelException; import org.eclipse.jdt.ui.PreferenceConstants; import org.eclipse.jface.action.IAction; import org.eclipse.jface.viewers.ISelection; import org.eclipse.ui.IObjectActionDelegate; import org.eclipse.ui.IWorkbenchPart; public class NewJavaProjectAction implements IObjectActionDelegate { public void run(IAction action) { // 获取工作区 IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); // ///////////////////////////////////创建新项目/////////////////////////// final IProject project = root.getProject("xyz"); // 设置工程的位置 // 为项目指定存放路径,默认放在当前工作区 IPath projectPath = new Path("g:/myplugIn"); IWorkspace workspace = root.getWorkspace(); final IProjectDescription description = workspace.newProjectDescription(project.getName()); description.setLocation(projectPath); // 设置工程标记,即为java工程 String[] javaNature = description.getNatureIds(); String[] newJavaNature = new String[javaNature.length + 1]; System.arraycopy(javaNature, 0, newJavaNature, 0, javaNature.length); newJavaNature[javaNature.length] = "org.eclipse.jdt.core.javanature"; // 这个标记证明本工程是Java工程 description.setNatureIds(newJavaNature); // ///////////////////////////// try { NullProgressMonitor monitor = new NullProgressMonitor(); project.create(description, monitor); project.open(IResource.BACKGROUND_REFRESH, new SubProgressMonitor(monitor, 1000)); } catch (CoreException e) { e.printStackTrace(); } // 下面代码只在新建向导的情况下才可用 /* * //创建新项目,WorkspaceModifyOperation位于org.eclipse.ui.ide中 * WorkspaceModifyOperation workspaceModifyOperation = new * WorkspaceModifyOperation() { * * @Override protected void execute(IProgressMonitor monitor) throws * CoreException, InvocationTargetException, InterruptedException { try * { monitor.beginTask("", ); project.create(description, monitor); * * if(monitor.isCanceled()){ throw new OperationCanceledException(); } * * project.open(IResource.BACKGROUND_REFRESH, new * SubProgressMonitor(monitor, )); } catch (Exception e) { * e.printStackTrace(); } finally{ monitor.done(); } } }; * //接下来调用IWizard的getContainer().run()方法. */ // 转化成java工程 IJavaProject javaProject = JavaCore.create(project); // //////////////////////////////////添加JRE库//////////////////////////// try { // 获取默认的JRE库 IClasspathEntry[] jreLibrary = PreferenceConstants.getDefaultJRELibrary(); // 获取原来的build path IClasspathEntry[] oldClasspathEntries = javaProject.getRawClasspath(); List list = new ArrayList(); list.addAll(Arrays.asList(jreLibrary)); list.addAll(Arrays.asList(oldClasspathEntries)); javaProject.setRawClasspath(list.toArray(new IClasspathEntry[list.size()]), null); } catch (JavaModelException e) { e.printStackTrace(); } // //////////////////////////////////创建输出路径///////////////////////////// IFolder binFolder = javaProject.getProject().getFolder("bin"); try { binFolder.create(true, true, null); javaProject.setOutputLocation(binFolder.getFullPath(), null); } catch (CoreException e) { e.printStackTrace(); } // /////////////////////////设置Java生成器/////////////////////// try { IProjectDescription description2 = javaProject.getProject().getDescription(); ICommand command = description2.newCommand(); command.setBuilderName("org.eclipse.jdt.core.javabuilder"); description2.setBuildSpec(new ICommand[] { command }); description2.setNatureIds(new String[] { "org.eclipse.jdt.core.javanature" }); javaProject.getProject().setDescription(description2, null); } catch (CoreException e) { e.printStackTrace(); } // /////////////////////////////创建源代码文件夹////////////////////////// // ///////////源文件夹和文件夹相似,只是使用PackageFragmentRoot进行了封装//////// IFolder srcFolder = javaProject.getProject().getFolder("src"); try { srcFolder.create(true, true, null); // this.createFolder(srcFolder); // 创建SourceLibrary IClasspathEntry srcClasspathEntry = JavaCore.newSourceEntry(srcFolder.getFullPath()); // 得到旧的build path IClasspathEntry[] oldClasspathEntries = javaProject.readRawClasspath(); // 添加新的 List list = new ArrayList(); list.addAll(Arrays.asList(oldClasspathEntries)); list.add(srcClasspathEntry); // 原来存在一个与工程名相同的源文件夹,必须先删除 IClasspathEntry temp = JavaCore.newSourceEntry(new Path("/xyz")); if (list.contains(temp)) { list.remove(temp); } System.out.println(list.size()); javaProject.setRawClasspath(list.toArray(new IClasspathEntry[list.size()]), null); } catch (CoreException e) { e.printStackTrace(); } // ///////////////////////////////创建包////////////////////////// // IPackageFragmentRoot packageFragmentRoot = javaProject.getPackageFragmentRoot(javaProject.getResource()); //此处得到的src目录只读 try { // 先找指定的源文件夹所在的IPackageFragmentRoot IPackageFragmentRoot packageFragmentRoot = javaProject.findPackageFragmentRoot(new Path("/xyz/src")); // 根据IPackageFragmentRoot创建IPackageFragment,IPackageFragment就是包了 IPackageFragment packageFragment = packageFragmentRoot.createPackageFragment("com.aptech.plugin", true, null); // //////////////////////////////////创建Java文件//////////////////////// String javaCode = "package com.aptech.plugin;public class HelloWorld{public static void main(String[] args){System.out.println(\"中华人民共和国\");}}"; packageFragment.createCompilationUnit("HelloWorld.java", javaCode, true, new NullProgressMonitor()); } catch (JavaModelException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } public void setActivePart(IAction action, IWorkbenchPart targetPart) { } public void selectionChanged(IAction action, ISelection selection) { } } |
|||
mybatis | Spring3.0和Mybatis的集成,含事务配置 | ||
<?xml version="1.0" encoding="UTF-8"?> <beans default-autowire="byType" xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <bean id="propertyConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:spring-jdbc.properties</value> </list> </property> </bean> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${jdbc.driver}"> </property> <property name="url" value="${jdbc.url}"> </property> <property name="username" value="${jdbc.username}"> </property> <property name="password" value="${jdbc.password}"> </property> </bean> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="configLocation" value="classpath:SqlMapConfig.xml"></property> <property name="dataSource" ref="dataSource"></property> <property name="mapperLocations" value="classpath*:mappers-*.xml"></property> </bean> <!-- 由spring管理mybatis的事物 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 定义拦截器,用来指定事物属性,级别,和异常处理 --> <bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor"> <property name="transactionManager" ref="transactionManager"></property> <property name="transactionAttributes"> <props> <!-- PROPAGATION_SUPPORTS: 如果已经存在事务,则加入事务;如果没有事务,则以非事务的方式执行; PROPAGATION_MANDATORY: 使用当前事务, 如果没有, 则抛出异常; PROPAGATION_REQUIRED: 新建事务,如果当前有事务, 则挂起; P ROPAGATION_NOT_SUPPORTED:以非事务的方式执行, 如果当前有事务, 则挂起; PROPAGATION_NEVER:以非事务的方式执行, 如果当前有事务,则抛出异常; +/-Exception</prop> + 表示异常出现时事物提交 - 表示异常出现时事务回滚 --> <prop key="find*">PROPAGATION_SUPPORTS,readOnly</prop> <prop key="del*"> PROPAGATION_SUPPORTS</prop> <prop key="update*">PROPAGATION_REQUIRED</prop> <prop key="save*">PROPAGATION_REQUIRED,-Exception</prop> </props> </property> </bean> <!-- 用来定义那些类需要采用事物管理 spring 事物的动态代理类 BeanNameAutoProxyCreator 根据类名自动代理,接受表达式 --> <bean id="BeanProxy" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"> <property name="beanNames"> <!-- 对类名以MybatisService结尾的类进行代理 --> <value>*MybatisService</value> </property> <!-- 对代理类进行加载拦截器(实现通知的过程) --> <property name="interceptorNames"> <list> <value>transactionInterceptor</value> </list> </property> </bean> </beans> |
|||
外网地址 | 获取本机外网IP地址(External IP Address) | ||
import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 获取本机外网IP地址 * 思想是访问网站http://checkip.dyndns.org/,得到返回的文本后解析出本机在外网的IP地址 * @author Administrator * */ public class ExternalIpAddressFetcher { // 外网IP提供者的网址 private String externalIpProviderUrl; // 本机外网IP地址 private String myExternalIpAddress; public ExternalIpAddressFetcher(String externalIpProviderUrl) { this.externalIpProviderUrl = externalIpProviderUrl; String returnedhtml = fetchExternalIpProviderHTML(externalIpProviderUrl); parse(returnedhtml); } /** * 从外网提供者处获得包含本机外网地址的字符串 * 从http://checkip.dyndns.org返回的字符串如下 * <html><head><title>Current IP Check</title></head><body>Current IP Address: 123.147.226.222</body></html> * @param externalIpProviderUrl * @return */ private String fetchExternalIpProviderHTML(String externalIpProviderUrl) { // 输入流 InputStream in = null; // 到外网提供者的Http连接 HttpURLConnection httpConn = null; try { // 打开连接 URL url = new URL(externalIpProviderUrl); httpConn = (HttpURLConnection) url.openConnection(); // 连接设置 HttpURLConnection.setFollowRedirects(true); httpConn.setRequestMethod("GET"); httpConn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows 2000)"); // 获取连接的输入流 in = httpConn.getInputStream(); byte[] bytes=new byte[1024];// 此大小可根据实际情况调整 // 读取到数组中 int offset = 0; int numRead = 0; while (offset < bytes.length && (numRead=in.read(bytes, offset, bytes.length-offset)) >= 0) { offset += numRead; } // 将字节转化为为UTF-8的字符串 String receivedString=new String(bytes,"UTF-8"); // 返回 return receivedString; } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { in.close(); httpConn.disconnect(); } catch (Exception ex) { ex.printStackTrace(); } } // 出现异常则返回空 return null; } /** * 使用正则表达式解析返回的HTML文本,得到本机外网地址 * @param html */ private void parse(String html){ Pattern pattern=Pattern.compile("(\\d{1,3})[.](\\d{1,3})[.](\\d{1,3})[.](\\d{1,3})", Pattern.CASE_INSENSITIVE); Matcher matcher=pattern.matcher(html); while(matcher.find()){ myExternalIpAddress=matcher.group(0); } } /** * 得到本机外网地址,得不到则为空 * @return */ public String getMyExternalIpAddress() { return myExternalIpAddress; } public static void main(String[] args){ ExternalIpAddressFetcher fetcher=new ExternalIpAddressFetcher("http://checkip.dyndns.org/"); System.out.println(fetcher.getMyExternalIpAddress()); } } |
|||
加密 | 使用jasypt加密properties文件密码 | ||
package example; import org.jasypt.util.text.BasicTextEncryptor; /** * 加密解密类 * @author Administrator * */ public class PasswordEncryptorTest { public static void main(String[] args) { //加密 BasicTextEncryptor textEncryptor = new BasicTextEncryptor(); textEncryptor.setPassword("root"); String newPassword = textEncryptor.encrypt("123456"); System.out.println(newPassword); // 解密 BasicTextEncryptor textEncryptor2 = new BasicTextEncryptor(); textEncryptor2.setPassword("root"); String oldPassword = textEncryptor2.decrypt(newPassword); System.out.println(oldPassword); } } |
|||
displaytag | displaytag | 扩展displaytag标签库 标记 | |
<attribute> <name>onmouseover</name> <required>false</required> <rtexprvalue>true</rtexprvalue> <type>java.lang.String</type> <description> JavaScript onmouseover event attribute. add by lovejj. </description> </attribute> |
|||
jquery loading | jquery loading | 基于jquery的loading mask遮罩控件 | |
<script type="text/javascript" src="loading-min.js" charset="UTF-8"></script> <script type="text/javascript" src="jquery.bgiframe.min.js" charset="UTF-8"></script> <link href="loading.css" type="text/css" rel="stylesheet"> |
|||
apache 反向代理均衡负载 | 集群 | 请教apache跟tomcat做集群session不同步问题 | |
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so ProxyPass /admin balancer://tomcatcluster/admin lbmethod=byrequests stickysession=JSESSIONID nofailover=Off timeout=5 maxattempts=3 ProxyPassReverse /admin balancer://tomcatcluster/admin <Proxy balancer://tomcatcluster> BalancerMember ajp://localhost:8009 route=web1 BalancerMember ajp://localhost:10009 smax=10 route=web2 BalancerMember ajp://localhost:11009 route=web3 BalancerMember ajp://localhost:12009 smax=10 route=web4 </Proxy> |
|||
jquery使用技巧 | jquery | 常用jquery使用技巧 | |
$(document).ready(function() { jQuery.fn.center = function () { this.css("position","absolute"); this.css("top", ( $(window).height() - this.height() ) / 2+$(window).scrollTop() + "px"); this.css("left", ( $(window).width() - this.width() ) / 2+$(window).scrollLeft() + "px"); return this; } $("#id").center(); }); |
|||
struts2 登陆后跳转到指定页面 | java | 登录后跳转到最后访问URL | |
<!-- 不需要验证登录的请求都放在这个 package 里面 --> <package name="login" extends="struts-default" namespace="/login"> </package> <!-- 需要验证的请求放在这个 package 里面 --> <package name="login-check" extends="checklogin" namespace="/login"> </package> |
|||
python 声控 | python | python语音控制电脑_uusee全屏 | |
# -*- coding: utf-8 -*- import time import speech import subprocess import win32com.client from zoomUUSee import zoomUUSee """author:alex8224 天气冷了,全屏麻烦,随后写的,方便偷懒""" cmdDict=None wsh=win32com.client.Dispatch("WScript.Shell") def voiceCallBack(phrase,listene): funcptr=cmdDict[phrase] if funcptr: funcptr() def goodbye(listener): listener.stoplistening() def listenSong(): #subprocess.Popen("D:\Program Files\KuGou\KuGou2010\KuGoo.exe") pass def stopSong(): """发送ctrl+alt+s""" wsh.SendKeys("^%{F5}") def nextSong(): """发送ctrl+alt+right""" wsh.SendKeys("^%{RIGHT}") def prevSong(): """发送ctrl+alt+left""" wsh.SendKeys("^%{LEFT}") def plusSound(): """发送ctrl+alt+up""" for i in range(5): wsh.SendKeys("^%{UP}") time.sleep(.5) def jianSound(): """发送ctrl+alt+down""" for i in range(5): wsh.SendKeys("^%{DOWN}") time.sleep(.5) def shutdownPC(): stopSong() subprocess.Popen("shutdown -s -t 180") def cancelshutdown(): subprocess.Popen("shutdown -a") def myPC(): subprocess.Popen("explorer c:\\") if __name__ == "__main__": global cmdDict cmdDict={u'全屏播放':zoomUUSee,u'再见':goodbye,u'听歌':listenSong,u'睡觉啦':shutdownPC,u'大点':plusSound,u'小点':jianSound,u'下':nextSong,\ u'上':prevSong,u'取消':cancelshutdown,u'不听':stopSong} listener=speech.listenfor(cmdDict.keys(),voiceCallBack) while listener.islistening(): time.sleep(1) |
|||
web.xml | java | web.xml 中的安全性配置 | |
<security-constraint> <display-name> baseporject</display-name> <web-resource-collection> <web-resource-name>baseproject</web-resource-name> <url-pattern>*.jsp</url-pattern> <url-pattern>*.do</url-pattern> <http-method>GET</http-method> <http-method>PUT</http-method> <http-method>HEAD</http-method> <http-method>TRACE</http-method> <http-method>POST</http-method> <http-method>DELETE</http-method> <http-method>OPTIONS</http-method> </web-resource-collection> <auth-constraint> <description> baseproject</description> <role-name>All Role</role-name> </auth-constraint> <user-data-constraint> <transport-guarantee>NONE</transport-guarantee> </user-data-constraint> </security-constraint> <login-config> |
|||
登陆界面 | android | Android QQ登录界面 | |
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, Date!</string> <string name="app_name">丸子-Widget</string> <string name="strInputAccHint">输入帐号</string> <string name="strAccInputLabel">帐号</string> <string name="strPswInputLabel">密码</string> <string name="opt_remember">记住密码</string> <string name="login">登 录</string> <string name="opt_hideLogin">隐身登录</string> <string name="opt_silent">静音登录</string> <string name="opt_openVibra">开启振动</string> <string name="opt_acceptGroupMsg">接收群消息</string> </resources> |
|||
produce | flex | java send message to flex(BlazeDS) | |
package com.kinorsoft; import java.util.Date; import flex.messaging.MessageBroker; import flex.messaging.messages.AsyncMessage; public class MessageSender { public void sendMessageToClients(String messageBody) { AsyncMessage msg = new AsyncMessage(); msg.setClientId("Java-Based-Producer-For-Messaging"); msg.setTimestamp(new Date().getTime()); //you can create a unique id msg.setMessageId("Java-Based-Producer-For-Messaging-ID"); //destination to which the message is to be sent msg.setDestination("mychat"); //set message body msg.setBody(messageBody != null?messageBody:""); //set message header msg.setHeader("sender", "From the server"); //send message to destination MessageBroker.getMessageBroker(null).routeMessageToService(msg, null); } } |
|||
flex produce | flex | java send message to flex(BlazeDS) | |
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="applicationInit()"> <mx:Script> <![CDATA[ import mx.messaging.ChannelSet; import mx.messaging.channels.AMFChannel; import mx.controls.Alert; import mx.messaging.events.MessageEvent; import mx.messaging.messages.AsyncMessage; import mx.messaging.events.MessageFaultEvent; import mx.messaging.events.MessageAckEvent; import mx.rpc.events.ResultEvent; import mx.rpc.events.FaultEvent; private function applicationInit():void{ var url:String ="http://192.168.1.102/blazeds/"; //随便的以个blazeds应用 如果192.168.1.102改成 localhost后其它的电脑就访问不了。 // var myStreamingAMF:StreamingAMFChannel = new StreamingAMFChannel(url+"my-streaming-amf", url+"messagebroker/streamingamf"); var myPollingAMF:AMFChannel = new AMFChannel(url+"my-polling-amf", url+"messagebroker/amfpolling"); myPollingAMF.pollingEnabled = true;//轮询 myPollingAMF.pollingInterval = 1000;//隔多长时间询问一次 1miao var channelSet:ChannelSet = new ChannelSet(); // channelSet.addChannel(myStreamingAMF); channelSet.addChannel(myPollingAMF); messageProducer.channelSet = channelSet; messageConsumer.channelSet = channelSet; messageConsumer.subscribe(); } private function addMessageToArea(message:String):void { chatMessagesArea.text = chatMessagesArea.text + "\n" + message; } private function handleResponse(event:MessageEvent):void { var message:String = null; message = event.message.headers["sender"] + ": " + event.message.body; addMessageToArea(message); } private function sendMessage():void { var message:AsyncMessage = new AsyncMessage(); message.headers = new Array(); message.headers["sender"] = "sunny"; message.body = chatMessageTxt.text; messageProducer.send(message); chatMessageTxt.text = ""; } private function handleFaults(event:MessageFaultEvent):void { Alert.show(event.faultString); } private function handleAcknowledgements(event:MessageAckEvent):void { trace("done"); } ]]> </mx:Script> <mx:Producer id="messageProducer" destination="mychat" fault="handleFaults(event);" acknowledge="handleAcknowledgements(event)" /> <mx:Consumer id="messageConsumer" destination="mychat" fault="handleFaults(event)" message="handleResponse(event)" /> <mx:VBox width="100%" height="100%"> <mx:TextArea id="chatMessagesArea" editable="false" width="100%" height="100%" fontFamily="Georgia" fontSize="19" color="#2194AD"/> <mx:HBox width="100%" height="27"> <mx:TextInput id="chatMessageTxt" width="100%" height="100%" fontFamily="Georgia" fontSize="15" enter="sendMessage()"/> <mx:Button id="chatMessageBtn" label="Send" width="64" height="100%" click="sendMessage();"/> </mx:HBox> </mx:VBox> </mx:Application> |
|||
swfObject | flex | swfobject三种使用方法 | |
<script type="text/javascript" src="swfobject.js"></script> <script type="text/javascript"> //1.使用Json初始化变量、参数、属性 var flashvars = { picArray=mypics, effectName:"wipeRight", delay:"4000" }; var params = { wmode: "Opaque" }; var attributes = { }; swfobject.embedSWF("slideshow.swf", "myContent", "480", "640", "9.0.0", "expressInstall.swf", flashvars, params, attributes); //2.参数传递 var FlashVars= {}; var mypics = new Array("pic/2.jpg","pic/3.jpg","pic/4.jpg","pic/1.jpg"); FlashVars.picArray=mypics; FlashVars.effectName="wipeRight"; FlashVars.delay="4000"; var params = {wmode: "Opaque""}; var attributes = {}; swfobject.embedSWF("slidein.swf", "myContent", "480", "640", "9.0.0", "expressInstall.swf", FlashVars, params, attributes); //3、直接写在后面 swfobject.embedSWF("slidein.swf", "content5", "480", "640", "9.0.0", "expressInstall.swf", {name1:"hello",name2:"world",name3:"foobar"}, {menu:"false"}, {id:"dynamicContent5",name:"dynamicContent5"}); </script> |
|||
xml object | flex | flex 将XML文件类型转换成Flex Object键值对类型 | |
var obj:Object = new SimpleXMLDecoder(true).decodeXML(new XMLDocument(xl.toXMLString())).node; |
|||
flex_excel | flex | flex 使用as3xls 生成 excel表格 . 解决中文乱码, 支持web application | |
private var sheet:Sheet; |
|||
drawing | 11 | 命令模式--撤销恢复 | |
/* Generated by Together */ package com.javapatterns.command.drawlines; import java.awt.Canvas; import java.awt.Color; import java.awt.Graphics; import java.awt.Point; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; import java.util.Enumeration; import java.util.Vector; //(接收者,负责具体实施和执行一个请求)画布,可以在该画布上画任意条直线 public class Drawing extends Canvas implements MouseListener, MouseMotionListener { private static final long serialVersionUID = -4887753465176351050L; private SimpleDraw applet;//应用程序 private Vector<Line> lines;//线集合 private Point startPosition;//画线开始位置 private Point mousePosition;//鼠标位置 private boolean mousePressed;//鼠标是否按下 //构造方法,初始化属性信息 public Drawing(SimpleDraw owner) { applet = owner; lines = new Vector<Line>(); mousePressed = false;//默认鼠标未按下 setBackground(Color.GREEN);//设置画布背景色 addMouseListener(this);//添加鼠标监听器,自己实现了该接口 addMouseMotionListener(this);//添加鼠标移动事件的侦听器,自己实现了该接口 } //添加一条线(行动方法) public void add(Line line) { lines.addElement(line); repaint(); } //删除一条线(行动方法) public void remove(Line line) { lines.removeElement(line); repaint(); } public void paint(Graphics graphics) { Enumeration<Line> enumeration = lines.elements(); Line currentLine; while (enumeration.hasMoreElements()) { currentLine = (Line) (enumeration.nextElement()); currentLine.paint(graphics); } if (mousePressed) { graphics.drawLine(startPosition.x, startPosition.y, mousePosition.x, mousePosition.y); } } //鼠标按键在组件上单击(按下并释放)时调用 public void mouseClicked(MouseEvent event) { } //鼠标进入到组件上时调用 public void mouseEntered(MouseEvent event) { } //鼠标离开组件时调用 public void mouseExited(MouseEvent event) { } //鼠标按键在组件上按下时调用 public void mousePressed(MouseEvent event) { mousePressed = true;//设置鼠标为按下状态 startPosition = event.getPoint();//记录直线的开始位置 } //鼠标按钮在组件上释放时调用 public void mouseReleased(MouseEvent event) { if (!event.getPoint().equals(startPosition)) {//两点不重合 Line line = new Line(startPosition, event.getPoint());//创建直线 AddLineCommand command = new AddLineCommand(this, line);//创建添加直线的一个命令 applet.execute(command);//请求者请求命令的执行 } mousePressed = false; } public void mouseDragged(MouseEvent event) { mousePosition = event.getPoint(); repaint(); } public void mouseMoved(MouseEvent event) { } } |