May 26, 2010, 9:05 am
第一次用java swing写了套桌面程序,来自动化一些工作上的事情。有人问我为什么不用AIR,毕竟是比较熟悉的flash开发模式,我的理由是AS相关的文档处理类库不够丰富,可能这也是AIR的一个不太好的地方。
熟悉AIR和swing的人应该知道,AS这类动态语言在UI编程的效率方面比java好N多,比如bind非常实用和简便。可是java swing借助一些丰富的类库也能实现类似功能,比如这次要讲的betterbeansbinding,可以实现JList,JTable等swing组件和java beans的绑定,单向或双向的都行。
举例一段代码
jtb = SwingBindings.createJTableBinding(UpdateStrategy.READ_WRITE, vec, wage_list);
BeanProperty<SJPerson, ?> sjp_name = BeanProperty.create("personName");
BeanProperty<SJPerson, ?> sjp_wage1 = BeanProperty.create("wage1");
BeanProperty<SJPerson, ?> sjp_wage2 = BeanProperty.create("wage2");
jtb.addColumnBinding(sjp_name).setColumnName("姓名").setEditable(false);
jtb.addColumnBinding(sjp_wage1).setColumnName("底薪").setColumnClass(Float.class);
jtb.addColumnBinding(sjp_wage2).setColumnName("技术津贴").setColumnClass(Float.class);
jtb.bind();
它的作用是将
- Vector<SJPerson> vec
- JTable wage_list
双向绑定,vec是一组beans,在JTable里显示一个row。
更多信息可搜索或者Google code
April 19, 2010, 12:26 pm
以前写的一段Flex分页组件,可以复用。样式如下,左右各有一组”<<”和”<”,分别表示跳到第一页和前一页(相对应的,跳到最后一页和后一页),屏幕上页面数字只会显示7个,功能很基本。
这套组件主要是用到了LinkButton和Repeater。
<!-- page -->
<mx:HBox id="paginationbox" width="100%" height="24"
verticalAlign="middle" horizontalGap="0"
visible="false">
<mx:Label text="PAGES: "/>
<mx:Spacer width="3"/>
<mx:LinkButton label="<<"
styleName="pageLinkBtn"
enabled="{_curr_page_index!=0}"
click="showImagesInList()"/>
<mx:LinkButton label="<"
styleName="pageLinkBtn"
enabled="{_curr_page_index > 0}"
click="showImagesInList(_curr_page_index-1)"/>
<mx:Repeater id="prepeater"
dataProvider="{_pages}"
count="7"
startingIndex="{(_curr_page_index-3 < 0)?0:(_curr_page_index-3)}">
<mx:LinkButton label="{(prepeater.currentIndex+1).toString()}"
enabled="{int(prepeater.currentIndex) != _curr_page_index}"
styleName="pageLinkBtn"
click="showImagesInList(event.currentTarget.repeaterIndex)"/>
</mx:Repeater>
<mx:LinkButton label=">"
enabled="{_curr_page_index < _pages.length-1}"
click="showImagesInList(_curr_page_index+1)"
styleName="pageLinkBtn"/>
<mx:LinkButton label=">>"
enabled="{_curr_page_index != _pages.length-1}"
click="showImagesInList(_pages.length-1)"
styleName="pageLinkBtn"/>
</mx:HBox>
style比较简单
.pageLinkBtn
{
paddingLeft:0;
paddingRight:0;
paddingTop:0;
paddingBottom:0;
}
January 5, 2010, 10:10 pm
原文见这里,名字叫FilterComboBox。继承自ComboBase,可以根据输入的文字来自动匹配dataprovider,并显示在下拉列表,相当实用的Flex组件。
sample点击这里。右键可以查看源码。