Scratz's profileScratz 的小果园PhotosBlogListsMore ![]() | Help |
|
7/31/2007 “正宗”Windows 风格弹出窗口 上回说道,Java 默认的弹出窗口样式和 Windows 有一定的偏差,但可以通过自定义 Popup 来解决。通过今天上午的努力,我已经完成了同时具有动态弹出、阴影边框和条目选中时不四周挤满这三种效果的菜单,已经和 Windows 的风格非常接近了。值得一提的是,要让菜单栏上的 JMenu 选中时不挤满四周,只需在 JMenuBar 上添加空边框就行了,而不必重写 BasicMenuBarUI 之类,意外的简单。 以下是这个实现中最重要的 getPopup 方法。没贴出来的代码基本上和威廉的一样,少数地方略有改动。
7/30/2007 成就感 今天晚上我终于独力把 JMenuItem 的一个遗留问题解决了。虽然 Java 支持 Windows 外观感觉,但仍有些许差别。昨天拼凑出来的动画阴影菜单算是解决了一半。剩下的一半就是,Windows 菜单条目在选中的时候,蓝色的颜色块四周还留有一小部分空白,比较好看;JMenuItem 就全部撑满了,感觉不太协调。以前尝试过加空边框或边界,都无法解决。今天算是来了灵感,完美地做出了这个效果。关键点就是替换掉 JPopupMenu 的默认边框。目前与阴影边框整合还有一点问题,右下角的阴影不知为何显示不出来,等弄好了再把代码一起贴上。 难得做一次好人作为一部轻松的休闲喜剧片,《荒野大飙客》再合适不过了。但是我一看到约翰·特拉沃尔塔那张阴险的面容,就时刻留意他什么时候会突然背叛和出卖朋友。幸亏没有!坏人演多了偶尔演一次好人就是这个效果哈哈! As a relaxed film for entertainment and joy, "Wild Hogs" can't fit any more. But as soon as I saw that insidious visage of John Travolta, I began to pay attention to when he would betray and sell out his friends. Fortunately he didn't! So many bad guys has he has been casted as, which resulted in such an effect once he was casted as a good guy! 7/29/2007 动画阴影弹出窗口完成了 Java 的弹出窗口默认是没有这些效果的。以前研究过《Swing Hacks》里面相关的例子,方法是自定义一个 PopupMenuUI(扩展 BasicPopupMenuUI),然后用 UIManager 设置 PopupMenuUI 属性。但作者没能很好应付重量级弹出窗口,导致有时候会失效。 Java's popup window has no these effects by default. I've delved into relational examples in "Swing Hacks", which define their own PopupMenuUIs (by extending BasicPopupMenuUI) and set PopupMenuUI property through UIManager. But the authors don't handle heavy weight popups properly, making sometimes effects disappear. 7/28/2007 《马克斯·佩恩》的新消息 刚才在 YouTube 网站上看到两段关于马克斯·佩恩的片段,据称分别是电影《马克斯·佩恩:佩恩和救赎》(Max Payne: Payne & Redemption)和游戏《马克斯·佩恩 3:跌入黑暗》(Max Payne 3: Fall into the Dark)。电影和游戏都将在今年底到明年初推出。 7/27/2007 累 上班半年多了,几乎每个工作日都重复着相同的事情:起床、吃早饭、乘公交车去公司、呆在电脑前、吃午饭、呆在电脑前、乘公交车回来、吃晚饭、呆在电脑前、睡觉、起床……每天都照镜子看看稀拉的胡子,看看脸上的皱纹,看看眼睛的疲倦,值得庆幸的是还没有白发。 I have been working for more than half a year, and almost on every workday same things reapeat: getting up, having breakfast, going to company by bus, staying in front of computer, having lunch, staying in front of computer, going back by bus, having supper, staying in front of computer, going to bed, getting up... Everyday I look at the mirror, at my scattered beard, wrinkles on my face and tiredness in my eyes, and fortunately there is no white hair. 7/21/2007 Windows Live Writer 今天共享空间的界面稍微有点变化,看样子微软又要开始升级了。回想起上次的升级,简直是个噩梦,差点把我的整个空间都毁了。 7/20/2007 I'm Gonna Backup Logs!By now I have written so many logs. It's wonderful! But the server could be down and things would go horrible. That's why I am gonna backup all logs now. Fortunately, nearly all I have to do is to create a directory and a few sub-directories for categories, and copy and paste all text, except occasionally links need to be appended. Great that I haven't inserted any image into logs, or the backuop process would not be so easy. 雨 我喜欢雨。
雨经常具有象征意义,和风细雨代表似水柔情,疾风阵雨映衬忧愁沮丧,暴风骤雨喻示革命运动,还有很多。
不过在我,雨更多的是一种意境和心境。
下雨的时候,我经常坐在窗前或门前,有时望着天空,用目光牢牢抓住串串雨滴,直到在地面绽放出朵朵水花;有时又望着地面,看流水把街面冲刷得一尘不染,又偶撞到突出的石头上激荡飞扬。
虽然没有“飞流直下三千尺”的壮阔,却也得几分“大珠小珠落玉盘”的细腻。
就这么看着雨,什么都不想。 7/19/2007 《V 字仇杀队》的经典段落 设想过绝大部分单词都以同一个字母开头的句子吗?这只有思维怪异的沃卓斯基兄弟才编得出来,再加上雨果·维文那种特别的语调,完美!
But on this most auspicious of nights, permit me then, in lieu of the more commonplace sobriquet to suggest the character of this dramatis persona.
但是在这最吉祥的夜晚,请允许我,不用那种更为寻常的名号来揭示出剧中的这个角色。 Voila!
看啊! In view, a humble vaudevillian veteran cast vicariously as both victim and villain by the vicissitudes of fate.
表面上看,一个卑贱的杂耍老手随着命运的沉浮,感同身受地扮演着受害者与加害者的双重角色。 This visage, no mere veneer of vanity, is a vestige of the vox populi, now vacant, vanished.
这副面孔,不只是虚华的外表,更是群众呼声的绝响,现已消失殆尽。 However, this valorous visitation of a bygone vexation stands vivified and has vowed to vanquish these venal and virulent vermin vanguarding vice and vouchsafing the violently vicious and voracious violation of volition.
不过,这种对昔日烦恼的英勇回味经久不衰,并且誓要铲除这些贪婪凶狠、首当其恶且永无止境地亵渎意志的害虫。 The only verdict is vengeance, a vendetta held as a votive not in vain, for the value and veracity of such shall one day vindicate the vigilant and the virtuous.
唯一的裁决就是复仇,这种作为还愿的仇杀不会白费,是为了将来能给警惕者和有德者昭雪的那一天的价值和正确性。 Verily, this vichyssoise of verbiage veers most verbose.
说实话,这段啰嗦的陈词滥调会变得无比冗长。 So let me simply add that it's my very good honor to meet you and you may call me V. 所以让我简单地补充一下,遇到你我非常荣幸,你可以叫我 V。 7/18/2007 最近电影里流行的漫画英雄 据说美国的漫画公司总共炮制了 7000 多个漫画英雄。这些英雄一贯行侠仗义,有时也互相冲突,超越现实又不脱离现实。在好莱坞原创力逐渐下降的今天,电影巨头们纷纷把目光抛向这些传说中的英雄。下面是我了解的一些走进电影的漫画英雄的资料。
超人(Superman)
本名克拉克·肯特。来自氪星,因战争导致星球毁灭而被送到地球。拥有飞行的能力、闪电般的速度和几乎无穷的力量,眼睛还能发射激光。天敌是氪星石,可以完全禁锢其力量并使其不省人事。
蝙蝠侠(Batman)
本名布鲁斯·韦恩。父母意外被害后,因私自报仇而入狱,后被影子集团救出并受艰苦训练。返回后以高科技武装全身,行侠仗义。曾经和超人有过冲突和较量。
蜘蛛侠(Spider-Man)
本名彼得·帕克。本来是一名普通的学生,在一次蜘蛛展览中被一只基因变异的蜘蛛咬了一口,结果导致其自身变异,从而具有了蜘蛛般的敏捷和力量,并能发射出蜘蛛丝。除暴安良的同时也不免有些洋洋自得。
夜魔侠/超胆侠(Daredevil)
本名马特·默多克。一位拳击手的儿子,救人时发生意外导致双目失明,然而其余四种感官却变得异常敏锐,从而走上了除暴安良之路。常与蜘蛛侠合作。
惩罚者(The Punisher)
本名弗兰克·卡索。先后效劳于海军陆战队、FBI。一次任务后,全家其他人惨遭黑帮杀害,而政府却默不作声。于是便自己拿起武器,以暴力惩罚逍遥法外的凶徒。夜魔侠曾因反对他的极端暴力而与之交手。
X-战警(X-Men)
一群具有各种特异功能的变种人,其中的善良者被 X 教授培训,对抗万磁王集团,同时还要承受来自不理解他们的普通人类的压力。
绿巨人(The Hulk)
本名布鲁斯·班纳尔。在做一次实验时不小心发生爆炸,受到辐射,失去知觉的同时变身为绿巨人。他必须时刻面对罗斯将军的围捕。
刀锋战士(Blade)
尚在胎中的时候,其母亲被吸血鬼攻击而感染,因为只是被血液浸泡,所以他一生下来便同时具备吸血鬼和人类的能力。最后在威斯特的帮助下成为专门捕杀吸血鬼的战士。
神奇四侠(Fantastic Four)
五名科学家在太空战遭遇事故,受不明辐射而具备超能力。其中“末日博士”维克多·冯·杜姆妄图将其超能力用于其邪恶计划,而受到另外四人,即神奇四侠“奇幻先生”瑞德·理查德、“隐形女”苏·斯通、“霹雳火”约翰尼·斯通和“石头人”本·格林姆的阻止。
恶灵骑士(Ghost Rider)
每过一段时间,死神都会找到一位年轻人,签署一份出卖灵魂的协议,赋予力量,成为他的骑士。现任骑士约翰尼·布雷兹,在经过一段惨痛的挣扎后,完成了死神的任务,也看到了死神不可告人的目的。于是他拒绝继续履行协议,准备用这诅咒得来的力量和死神对抗到底。
变形金刚(Transformers)
这群巨大的钢铁家伙背景非常复杂,总之是高度发达的科技赋予了他们意识和智慧。主要是以擎天柱为领袖的“民用”汽车人代表的正义力量,和以威震天为头目的“军用”霸天虎代表的邪恶力量的长期战斗。 7/17/2007 对付沙人 昨天下载了《蜘蛛侠 3》,因为天太晚只看了个开头。早就听说里面有个打不散理还乱的沙人,莫非比液态终结者 T-1000 还厉害?看之前,先自己想两套对付他的绝招。
第一招叫“混凝大法”。就是准备好一堆水泥、一堆石子和一大桶水,一起泼过去,沙人不就成了混凝土吗?凝结过后,连动弹都不能,还威风什么哇哈哈!要不搞一大瓶强力 502,效果应该也不错。
第二招叫“罐装散沙”。找一些够结实的瓶子,打开盖子,从沙人身上横扫过去,然后立即拧紧瓶盖,密封住。多来几次,沙人就被拆得七零八落,封在瓶子里面组合不起来了。如果蜘蛛侠力气够大,找一块大钢板,把沙人横切为两段,接着松手,下半个沙人就被压在钢板下,上半个走不了路就好对付了。
鬼扯这么多,看看大英雄蜘蛛侠有没有更好的招式呢? Funny Things in JDK SourceThough the full version of JDK source is available now, but the public src.zip installed under Java\jdk[version_number] directory is still my most frequent refered resource. Every time I encounter an API problem, this public source is read. And besides solving those problems, I've also found many interesting things which are sometimes also funny. Here are three exaples.
Maybe since JDK 5.0, a method called wait(long timeout, int nanos) is introduced into Class java.lang.Object. Wait a minute, nanos, is it nanoseconds? It's no secret thst even in powerful Windows multimedia API, the precision of timer is only one millisecond, that is a million nanosecond. Though Java is pretty great, it can never deal with nanoseconds. And the source proves it, that nanoseconds are rounded to the nearest millisecond, 0 or 1... Amazing......
Today I chased a JDialog's owner, and wanted to find a way to get the owner out, since there's no method called getOwner(). Finally I was awear that the owner of a JDialog is exactly its parent component. So owner is synonymous with parent now?
At last, I wanna mention the JSpinner implementation is bugged. Some kinds of listener installed on a JSpinner take no effect at all. I found this comment in JSpinner.java: "Still bogus, nothing else we can do, the SpinnerModel and JFormattedTextField are now out of sync." The JDK developers deserve a thank for honesty. My solution is to directly manipulate the JFormattedTextField within this JSpinner, a compound JComponent. 7/15/2007 变形金刚 本来我看电影一般都要等到至少 TC,因为 CAM 或者 TS 版本都属于偷拍一类,效果不好,很容易把一部好片看成烂片。但这次的《变形金刚》,实在引起了十多年的回忆,所以破例下载了 TS。
小时候,我应该看过很多集动画版《变形金刚》吧,后来唯一记得起的角色就是汽车人(博派)领袖擎天柱,还记得擎天柱为拯救世界牺牲了自己。后来长大一点,想再看更懂一些,但电视台却不演了。盼好久盼来了一个叫《擎天柱》的什么片子,结果是介绍自然风光,害我白高兴一场。
等到能上网的时候,本来印象就不太深的变形金刚被忘得一干二净,也就没想到去找下载。知道不久前,突然看到消息说要上演真人版的《变形金刚》,于是又忽然想看看擎天柱有多厉害。顺便查了一下网页,知道还有大黄蜂、铁皮、爵士……坏蛋霸天虎(狂派)的老大是威震天,同伙有红蜘蛛、迷乱……好像真的很有趣,于是等不及了,TS 也下载来看。
要说这个 TS 的效果还不算很差,画面和声音都可以接受。电影有两个多小时。但是我感觉始终人的戏份比变形金刚重,不排除经费的原因。最后的决斗真是一场大混战,谁打谁都分不清楚。比较有意思的是,当擎天柱被威震天打得无还手之力时,对萨姆说:“快把魔方放进我的胸膛!”结果萨姆不知是听错了还是什么,把魔方放到威震天的胸膛里了,然后威震天就代替擎天柱自我牺牲……
最后,擎天柱呼叫所有流亡的汽车人前来地球,有一点为续集埋下伏笔的样子。但威震天怎么复活呢? 打造简单方便的复读机 因为声音传播的介质不同,自己说的话,自己和别人听是不一样的。用复读机练习英语口语,可以随时体验别人听到的效果,从而帮助矫正发音错误等。可是质量好的复读机价格也不菲,并且似乎没有存储录音的功能?其实 Windows XP 自带的录音机就能很好实现复读机的功能。
硬件方面,要有一个麦克风;最好有音箱,耳机也可以,但是要关掉“环绕立体声”之类的特殊音效。准备好后,打开“所有程序->附件->娱乐->录音机”。界面下方的五个按钮提供了常用的录音功能:“移至首部”、“移至尾部”、“播放”、“停止”和“录制”。要录音的时候,先按“录制”,然后对着麦克风说话,完了就按“停止”,最后用“播放”就能“复读”了。上面的进度条还能拖放,比复读机好用。
“文件->另存为”可以把录音保存为 .wav 声音文件,一般用默认的格式就可以了。选择“文件->新建”开始新的录音,直接录的话会把新的录音追加到上一次的末尾。
用这种办法,再加上媒体播放器的辅助,就能够完全实现复读机的常用功能,并且还能无限制地保存录音(只要硬盘足够大),体验自己的进步。 7/14/2007 My new understanding of Java's "synchronized" keywordTo be honest, I knew only a little about concurrent programming in Java. I uesed to use keyword "volatile" as an attempt to "enforce atomic operations" which had brought me more troubles than solved. Time to walk through the Concurrency Trail of Sun's Java Tutorials that I never finished reading in the past.
I do know and often see the usage of keyword "synchronized", but until yesterday I hadn't figured out how thie single word elimated so many synchronization problems. However, the very answer lies in those tutorials ever since I first read it and this time it has been clearly understood.
Every boject has an intrinsic lock, which is also known as monitor lock or monitor for short, associated with it. When a thread invokes a synchronized method, it automatically acquires the intrinsic lock for that method's object and releases it when the method returns. The lock release occurs even if the return was caused by an uncaught exception. As for a static synchronized method, an intrinsic lock for the Class object of that method's Class is acquired instead. Synchronized statements internally behaves no differently except in addition to this, an arbitrary object whose intrinsic lock will be acquired can be and should be explicitly specified.
In conclusion, "synchronized" keyword is a simplified way of locking objects, and also has many limitations. More sophisticated locking idioms are supported by the java.util.concurrency.locks package which I am going to learn. 7/13/2007 中国史上以少胜多的著名战役 网上收集,未经全面考证,稍作修改并排版如下:
7/12/2007 夏夜静思 夏夜,似有丝缕凉风,却又无处不透着闷热,本不当是夏夜。久不能寐而起,唯试以电脑疲之。视之亦无所乐,弃之亦无所从,而思之乃有此意,于是志之以为念。小处不胜烦却奈何?大处茫茫远又奈我何?尚有时。
On a summer night, seems I'm in wisps of cool wind, but meanwhile surrounded by sultriness. It shouldn't be a summer night. I fail to get to sleep and rise. The only way is to try to be fatigued by my computer. There's no happiness watching it, but also no direction without it. I think it over and get this idea, and write this down as a mark. Minor difficulities are so confusing that little I can do. Major goals are bleak and distant but never stir me. There's time. 7/1/2007 1993 年第三届 Ig 诺贝尔奖心理学
哈佛医学院的约翰·马克和天普大学的戴维·雅各布斯,两位精神幻想家,褒奖他们飞跃性的结论:相信自己被外太空的外星人绑架过的人,很可能真被绑架过——特别褒奖他们的结论:“诱拐的要因是制造小孩。”[参见:《秘密生活:第一手有案可查的 UFO 绑架报告书》]
消费者工程
朗·波佩尔,午夜电视里孜孜不倦的发明家和喋喋不休的牛皮大王,褒奖其为重新定义工业革命而弄出的如此设备:Veg-O-Matic 切菜机、口袋渔夫、话筒先生和蛋壳里的倒频器。[参见:《世纪推销员:在电视上发明、推广和销售:你也可以像我这样去做!》]
生物学
俄勒冈州健康部门的小保罗·威廉姆斯和利物浦热带医学院的肯尼思·W.·纽厄尔,两位果敢的生物学侦探,褒奖他们的先驱性研究:“快乐奔跑的猪身上的沙门氏菌排泄”。[发表于美国月刊《公共健康和国家健康》,卷 60,5 号,1970 年 5 月,926~929 页]
经济学
南卫理公会大学的拉维·巴特拉,泼悍的经济学家和畅销书《浩劫 1990》(17.95 美元)、《飞越 1990》(18.95 美元)的作者,褒奖单靠他的书卖出的足够数量,就阻止了世界经济的崩溃。
和平
菲律宾百事可乐公司,甜蜜希望和梦想的供应商,褒奖其发起竞赛来创造一个百万富翁,然后又公布了错误的赢家号码,从而激起 800,000 指望做赢家的暴民聚集起来,还在他们国家有史以来第一次让许多势不两立的派别联手。
幻象技术
颁发给密西根法明顿山的杰伊·谢夫曼,一流的“自动幻象”发明家,那是一种图像投影设备,使得一边开车一边看电视成为可能,同时也颁发给密西根州议会,褒奖其使之合法化。
化学
田纳西州路考特山的詹姆斯·坎贝尔和盖恩斯·坎贝尔,香气的专职传播者,褒奖其发明了香条,就是通过这种讨厌的方法香味被用在了杂志的页面上。
文学
E.·托普尔、R.·卡利夫、F.·范德华夫、P.·W.·阿姆斯特朗和他们的 972 个合作者,褒奖其发表了一篇医学研究论文,其中作者的数量有总页数的一百倍。[此文发表于《新英格兰医学月刊》,卷 329,10 号,1993 年 9 月 2 日,673~682 页。作者们来自以下国家:澳大利亚、比利时、加拿大、法国、德国、爱尔兰、以色列、卢森堡、荷兰、新西兰、波兰、西班牙、瑞士、英国、美国。]
数学
南加利福利亚绿榕的罗伯特·费德,统计学里有远见且忠诚的占卜家,褒奖其准确计算出米哈伊尔·戈尔巴乔夫是反基督者的比值(710,609,175,188,282,000 比 1)。[参见:《戈尔巴乔夫!真正的反基督者来了吗?》]
物理学
法国的路易斯·科尔文朗,炼金术的热心崇尚者,褒奖他的结论:鸡蛋壳里的钙是由低温核融合造出来的。[参见:《生物炼金及其用途:化学、物理学、生物学、生态学、医学、营养学、农学、地质学》]
医学
詹姆斯·F.·诺兰、托马斯·J.·史迪威和小约翰·P.·桑德兹,仁慈的医生,褒奖他们不辞辛苦的研究报告:《被拉链卡住的阴茎的紧急处理》。[发表于《急诊医学月刊》,卷 8,3 号,1990 年 5/6 月,305~307 页] |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|