West Farm
吾本布衣,生于川北,躬耕于代码的田地上。
posts - 16,  comments - 15,  trackbacks - 0
天天冒出一堆新的东西!让人不知所措。

举个例子:jquery - angular - react - vue

这语言真的有毒。

如今的硬件,恐怕在浏览器中实现强类型语言JAVA来作为脚本语言都不比JS弱吧,哎真替applet感到冤枉。

老夫一直就觉得,浏览器一直是一个很奇葩的东西,HTML+CSS+JS本身,难道不能发明一种语言通过HTTP传输,然后直接调用OS级别的UI来渲染不就完了吗?

网页能实现的界面,我不信用操作系统的UI组件做不出来。
posted @ 2018-04-01 00:19 West Farmer 阅读(44) | 评论 (0)编辑 收藏
原文地址:https://weblogs.java.net/blog/pat/archive/2004/10/stupid_scanner_1.html

正则表达式中,\A是指一个字符串的开头,可能大家用惯了^,而忽略了这个\A, 但是^其实是指一行的开始,而不管一个字符串里面包含多少行,\A都只匹配第一行的开头。
那么我们可以用
\A做点什么呢?,看下面这个例子:
static String convertStreamToString(java.io.InputStream is) {
    java.util.Scanner s = new java.util.Scanner(is).useDelimiter("\\A");
    return s.hasNext() ? s.next() : "";
}
相信大家都看懂了,用\A作为分隔符,那么得到的当然就只有一个token,那就是整个字符串了。再配合Scanner,就轻易的将一个输入流转换为一个字符串了。
注意当需要做编码转换时,Scanner是有支持编码参数的构造方法的。
posted @ 2013-11-28 09:38 West Farmer 阅读(544) | 评论 (0)编辑 收藏
     摘要: Gson is library created by google guys, it is used for java bean to json serialization/deserialization. Gson can serialize any java bean, collection, map to json, and don't need to care about the...  阅读全文
posted @ 2013-11-22 19:22 West Farmer 阅读(4836) | 评论 (3)编辑 收藏
If we observe a property of SWT controls, and bind it to another observable value, you must take care of those method calls which will change the property indirectly.
for example, we have a Combo whose "text" property is bound to a bean's "name" property like this:
IObservableValue nameObservable = BeansObservables.observeDetailValue(obserabedDriverProfile, "name", String.class);

ISWTObservableValue nameComboObservable = SWTObservables.observeText(driverClassCombo);

bindingContext.bindValue(nameComboObservable , nameObservable, new UpdateValueStrategy(UpdateValueStrategy.POLICY_UPDATE), null);

The variable "obserabedDriverProfile" is a observed selection in a ListViewer, it's in a master-detail scenario. If we add some code like this:
obserabedDriverProfile.addValueChangeListener(new IValueChangeListener(){

            @Override
            public void handleValueChange(ValueChangeEvent event) {
                DriverProfile dp = (DriverProfile)event.diff.getNewValue();
                driverClassCombo.removeAll();
                driverClassCombo.add(dp.getName();
                driverClassCombo.setText(driverClassCombo.getItem(0));
            }
            
        });
every time you change the selection in the ListViewer,  the selected bean's "name" property will be set to a empty string. Why?  The removeAll method of Combo will clear it's text, and combo's "text" property is bound to selected bean's "name" property. So, the right way is:
obserabedDriverProfile.addValueChangeListener(new IValueChangeListener(){

            @Override
            public void handleValueChange(ValueChangeEvent event) {
                DriverProfile dp = (DriverProfile)event.diff.getNewValue();
                String name = dp.getName;
                driverClassCombo.removeAll();
                driverClassCombo.add(name);
                driverClassCombo.setText(driverClassCombo.getItem(0));
            }
            
        });
posted @ 2013-04-14 15:24 West Farmer 阅读(155) | 评论 (0)编辑 收藏

<2013年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用链接

留言簿

随笔分类

随笔档案

相册

搜索

  •  

最新评论

阅读排行榜

评论排行榜