1、
代码:Toolkit.getDefaultToolkit().setDynamicLayout(true);
功能:动态调整Components的位置和大小 as soon as Parent Container resized.
2、
代码:UIManager.put("swing.boldMetal", Boolean.FALSE);
功能:用默认的Metal Layout时,字体一般都是粗体,不咋好看,用上述代码可以改为常规字体
在一个Editor的Tab上单击右键,选择New Editor,可以对当前文件打开一个新的编辑器。
两个编辑器是同步的。
前段时间,团队开始实施一个新项目。这个项目有着中国IT行业的三个共同特点:需求繁、工期紧、资源缺。
虽然从目前情况来看,它还有希望不会沦为“死亡项目”,但如果实施过程中不小心翼翼、步步为营,结局
就很难预料了。
虽然有着诸多不利因素,但是我们团队也还有一些有利因素,也许可以主宰项目的命运:
1)开明的领导。俺们的各级领导都算通情达理,不会做那种拍脑袋下结论、赶鸭子上架的事情;
2)详尽和准确的需求调研。前期的很多准备工作不是白作的,最后出来的需求调研文档基本反映了用户的最终
需求;
3)迭代的设计评审制度。大量时间花在编码前的设计上是值得的,原因我就不多说了,凡是学过PM的都清楚;
4)陆续加入的资源。(这一点很有可能从优势变为劣势,因为谁都知道项目中途加入新人只会影响进度)
在项目的初期,作为一个普通员工,在这种情况下最应该做什么呢?我觉得最重要的一样事情是做好个人计划。
不是从项目管理出发的那种整体计划,而是针对自己的任务(功能点)出发的个人计划--WBS清单:
项目经理制订的项目计划通常都比较粗线条,并没有具体到一个个的功能点,只是给出了哪个模块由谁负责、在
哪个期限之前完成。如果你不去自己细化它,而是抱着一种做了多少是多少的态度来实施这个计划,那么可能有
两个问题出现:
1)你负责的模块对于整个项目来说是个不可见的“黑盒子”,没人知道它到底完成到什么程度、完成得怎么样、
存在什么问题。连你自己都不知道自己的进度情况,领导就更不知道了,说不定就会出现拍脑袋的事情出现;
2)万一由于资源、时间或者技术难关的原因无法按时完成任务,那你就成了整个项目进度拖延的罪魁祸首--
领导会问你:既然有问题,为什么不早提出来?为什么要等到项目工期近了才提出来?
为了避免成为罪人,就要做一个聪明的项目参与者。首先要做的是制订一份有关个人的详细的WBS(Work Breakout
Structure,工作分解结构)清单。把自己的负责的模块的功能点全部列出来,注明每一项可能需要花费的时间、前提
条件、可能存在风险等。其目的无非是使得自己的工作足够透明、使得自己的工作时刻处于可控状态。
制订完WBS清单之后,当然是把它呈现给项目经理看,通常这个时候你的台词应该是:“hello,经理,这是我的详
细计划。根据我的评估,你分派给我的任务,是无法在项目限期内完成的,请你给我多分派人手、或者裁剪一下需
求,要不,发我双薪让我拼命加班?”
如果在你有WBS为据的前提下,经理还是逼迫你去完成原来规定的任务,我想这个时候你是不是应该考虑一下项目
失败之后你的出路啦?
最后是几个需要注意的问题:
1)留余地。 制订计划一定要正常,不要把自己的一天工作时间安排到12个小时,不要把自己的周末时间全部占用,
不要忽略了陪老婆孩子、打球、生病的时间;
2)计划与需求密切配合。要知道项目的验收是看需求的,如果你的计划能够与需求上的每一个用例密切配合,相信
领导会觉得你的WBS清单更可信更科学,而且这样的计划实施起来也会很爽的;
3)在出现意外情况时(例如领导要你临时接点额外任务时),记得拿出你的WBS清单,跟领导讲价:“工期给我延
长几天吧?”? 如果不这样,你还是一样会很有可能成为一个可怜的失败的项目参与者,呵呵。
Source:做一个聪明的项目参与者--制订WBS清单
下载一个商业软件进行学习和研究使用时,我们一些同学会立即找他的破解方法,而且在安装后的第一时间将它破解。
其实我们很多软件都不必破解的,他的试用期已经足够我们用了。我们现在用的软件如Power Designer只是为了一时的课程学习使用,在其他时候一般是不用的,用Sql Server Manager就足够了,大实验中也就用个四五天。
还有一些我们只是做界面的时候才用,如JBuilder,别的部分可能就用Eclipse了,而JBuilder试用期好像有30天吧,即使以后真的还要用,我们再来破解也不迟啊(这样的几率还是不大的)。
这样我们兴许能够减轻一下盗版的“罪名”,而且也能促使自己多使用开源免费软件。
呵呵,随感而发,发现我应该多练一下自己的写作水平和表达能力了: )
这样子不好吧,可不可以改一下,baggio
使用System.getProperty(“https.proxyHost“)得到代理Host
System.getProperty(“https.proxyPort“)得到代理Port
public void run()
{
if(isSetToFront)
{
this.toFront();
}
}
界面 (继承JWindow) extends Thread 或 implements Runnable, run之后sleep一下。
可用于Splash Window。
多线程中文件分块:
long single = fileBean.getLength()
// fileBean.getSplits().length;
// 设定所有子线程的起点
for (int i = 0; i < fileBean.getSplits().length; i++)
{
fileBean.getSplits()[i][0] = (long) (i * single);
}
// i end = i+1 start
for (int i = 0; i < fileBean.getSplits().length - 1; i++)
{
fileBean.getSplits()[i][1] = fileBean.getSplits()[i + 1][0];
}
// set end to length
fileBean.getSplits()[fileBean.getSplits().length - 1][1] = fileBean.getLength();
是否支持文件断点下载:
if (index > 0 && conn.responseCode != 206)
{
log.debug("由于服务器不支持断点续传,子线程无法运行");
return;
}
获取剪贴板:
Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable contents = clip.getContents(this);
try {
String str = (String) contents.getTransferData(DataFlavor.stringFlavor);
if (str.startsWith("http://")) {
remote.setText(str);
}
统一界面字体设置(其他UI设置也可用这种思想,有点像CSS)
setUIFont(new javax.swing.plaf.FontUIResource(null, Font.PLAIN, size));
public static void setUIFont(javax.swing.plaf.FontUIResource f)
{
java.util.Enumeration keys = UIManager.getDefaults().keys();
while (keys.hasMoreElements())
{
Object key = keys.nextElement();
Object value = UIManager.get(key);
if (value instanceof javax.swing.plaf.FontUIResource)
UIManager.put(key, f);
}
}
我抢注了三个:Andyluo、Xmall、Blueline(这个我不想独占哦,呵呵)
但是没赶着Andy和Luoming,ftft
漫漫长假,悠悠岁月
(WinXP)
在开始--〉运行,输入:
at 12:30 shutdown -s
即在12:30关闭计算机。取消关机可输入:shutdown -a (还记得当年怎么对付LoveGate吗?:))
要想在Win2000中使用,可将WinXP system32下的shutdown.exe拷入
自己定制可参考:shutdown /?
用法: shutdown [-i | -l | -s | -r | -a] [-f] [-m \\computername] [-t xx] [-c "co
mment"] [-d up:xx:yy]
没有参数 显示此消息(与 ? 相同)
-i 显示 GUI 界面,必须是第一个选项
-l 注销(不能与选项 -m 一起使用)
-s 关闭此计算机
-r 关闭并重启动此计算机
-a 放弃系统关机
-m \\computername 远程计算机关机/重启动/放弃
-t xx 设置关闭的超时为 xx 秒
-c "comment" 关闭注释(最大 127 个字符)
-f 强制运行的应用程序关闭而没有警告
-d [u][p]:xx:yy 关闭原因代码
u 是用户代码
p 是一个计划的关闭代码
xx 是一个主要原因代码(小于 256 的正整数)
yy 是一个次要原因代码(小于 65536 的正整数)
Commercial Licenses
• Custom license specific to the product
• Sometimes allows free use for non-profit organizations
• Sometimes allows free use for everyone
• Usually prohibits reverse engineering
• Usually prohibits redistribution
• Rarely includes source code
• May include all sorts of bizarre terms
GNU/General Public License (GPL)
• You are free to do whatever you want with the source code (modify, redistribute, etc.)
• But… any changes you make that you distribute must also be GPL
• And… any code you distribute that uses GPL code must be available under GPL
• Defeats “embrace and extend”
• Often called “viral” by both friend and foe
GNU Lesser General Public License (LGPL)
• Used to be called “Library GPL”
• Non-LGPL code can use it without becoming LGPL (e.g. linking during compile)
• Resulting combined executable is LGPL
• Many people think this means that you can use LGPL Java libraries from non-LGPL code
• Not clear whether that interpretation is correct
• We are not your lawyers :)
BSD/Apache Licenses
• You can freely use, modify, re-license, etc. as long as you maintain the copyright notices
• You can include the code in a commercial product without releasing your source code
• You can embrace and extend
• Safest for corporate use
这几天好忙哦,天天都有做不完的事,开始有点郁闷了。
92个经典开源项目集锦,囊括各个领域
From:WebService中返回类型一部分是数组
Suggestion:用ArrayList装数据后一定要trimToSize。
当我们调用new ArrayList()时,list默认的capacity为10,当你加入数据后,list的size为装入的对象个数,但capacity仍为10,若此时你调用list.toArray()将其转化为数组,该数组大小将为capacity,数组中后面的(capacity - size)个对象将置为null,此时最容易抛出ClassCastException(当将数组强制类型转换时)或出现莫名其妙的problem。
???我的疑问:
为什么我要调用toArray(new MyRealType[1])才能得到正确结果,而直接用toArray()也会抛出CastException,而且在调试时不能检视result的值(在toArray方法中)?
I was exhausted, because of the Amazon on our WebService course.
I expended nearly 2 days to solve some problems on the interoperation between Java Axis and .Net Client.
The error is always:
No serializer for cn.andy.amazon.AndyItem found in the org.apache.axis Registry.!!!
I should have been spending more time look for Resources.
I think it's due to the version confliction. I down the 1.2RC of Axis and it do nothing.
My Classmate give me a hypelink of axis when asking me solutions.
I look through the page, my god, exactly what I want.
Solution:
Axis know how to serialize javabean, but you should tell him which type is a javabean
to serialize in the server-config.wsdd.
put this in your server-config.wsdd according to your app:
<service name="SmsService" provider="java:RPC">
<parameter name="className" value="lius.axis.demo.SmsService"/>
<parameter name="allowedMethods" value="send"/>
<operation name="send" returnType="ns:Response">
<parameter name="msg" type="ns:Message"/>
</operation>
<!-- 这里定义了方法的参数以及返回值 -->
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
qname="ns:Message"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
type="java:lius.axis.demo.Message" xmlns:ns="SmsService"/>
<typeMapping
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
qname="ns:Response"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:lius.axis.demo.Response" xmlns:ns="SmsService"/>
</service>
Everything goes well now!
Resource:
http://www-900.ibm.com/developerWorks/cn/webservices/ws-deepaxis/index.shtml
连接点是程序执行中明确定义的点,比如,类接受到方法调用时,方法调用时,属性访问时都是连接点的例子,在连接点处可以执行预定义的额外实现。而要指明在哪些连接点上执行,则需要定义切入点,切入点可以在程序运行时匹配特定的连接点,AspectJ中预定义了一系列标准切入点,包括方法与构造器的调用,接受调用,执行,域的get,set访问,异常处理,实例类型匹配,处于类或方法体中,控制流中,调用者调用方法,类型的初始化与静态初始化,通过这些预定义切入点的组合可以实现自定义的、复杂的切入点。在编译时,方面中的参考将被转化为标准的方法,类代码中匹配切入点的连接点将被转化为一个静态的标记点。
静态横切是指对已存在的类型定义引入新的方法,属性等,与动态横切不同,静态横切不改变类型的动态行为,而是改变其静态结构,也即导入(Introduction)。通过在方面代码中声明方法,属性,需要继承的超类,接口等,在代码织入时,可以改变应用此方面的类的定义。
因为MyIE不能正常显示IE里的一个插件,我决定换换别的浏览器,从朋友处听说MyIE的下一个版本名字叫Maxthon,MyIE还有一个姐妹叫GreenBrowser。都下下来试一试。结果也都不能正常显示(连找都找不着)。第一次打开Maxthon时,它提示发现有第三方插件。于是乎我跑到安装目录下,真的有一个Plugin目录,里面是一些好用东东:去除网页中动态元素(这样看文章就舒服多了)、分析网页(可以选择下载图片和swf、查看CSS,哈哈哈,对制作网页应该挺有帮助)、解除某些网页中对鼠标的限制。。。
他们三的插件兼不兼容阿,都拷到MyIE的Plugin下,重启MyIE,呵呵,几个小按钮乖乖的躺在那里。
目的是在没有安装JDK的情况下制作可执行jar。
步骤:
1、在应用程序文件根目录(放置class文件的顶层目录)下新建一个META-INF目录,在该目录下新建MANIFEST.MF文件, 文件内容为(列出行号是为了提醒第2行是一个回车;Main-Class前无空格):
1 Main-Class: 包名.主类名
2
2、将应用程序根目录下所有文件用winrar或winzip打包,格式为zip;
3、将zip文件扩展名改为jar ;
4、双击jar文件即可运行。
希望能对大家有点帮助。