- 浏览: 253377 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
tanglingshuai:
liulehua 写道根本原因是:没有把该对象对应的主键保存到 ...
关于: org.hibernate.StaleStateException: Batch update -
javeye:
转载了你的文章http://javeye.iteye.com/ ...
关于在tomcat下配置 error-page 500错误不能在IE下转发页面的问题 -
imlsq:
嘿嘿, 使用SEAM 7-8个月时间了还是放弃使用SEAM的想 ...
发现一个Seam做的企业应用,blackberry的在线商店 -
yuanliyin:
我也在用,唯一不爽的就是性能!
发现一个Seam做的企业应用,blackberry的在线商店 -
perfect:
假的 ,大家不要上当 ,根本不能用
HttpWatch 6.1.41 许可文件
Breezy简介 -- 快速开发Swing程序!
Breezy:
sf 项目主页: http://sourceforge.net/projects/breezy/
下载: http://sourceforge.net/project/showfiles.php?group_id=158540&package_id=177653&release_id=412125
用户讨论区: http://www.hexiao.cn/bbs/thread.php?fid=9
大家都知道开发Swing程序有三大难点:
布局设置,事件处理,和数据绑定. 使用netbean中的新的布局管理器已经解决了第一个问题, 那么后面两个呢?
Breezy 就是用来简化后面两个问题而推出的.
下面我们先来看看一个简单的例子:
package test;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import net.sf.breezy.event.EventInstaller;
import net.sf.breezy.event.annotations.ActionPerformed;
import net.sf.breezy.event.annotations.DefAction;
@SuppressWarnings("serial")
public class TestBreezy extends JFrame {
private JButton button = new JButton("Test Breezy!");
public TestBreezy() {
this.setLayout(new BorderLayout());
this.add(button,BorderLayout.CENTER);
// 用来处理所有的Breezy的Annotations
EventInstaller.processEventAnnotation(this);
this.setSize(400, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
EventInstaller.setAction(button, "action");
}
// button的事件响应方法
@ActionPerformed("button")
public void myButtonAction() {
System.out.println("God, this is terrific!");//设置另外一个事件
}
// 使用id注册另外一个事件响应方法
@DefAction(id="action", name="Button")
void action(ActionEvent e) {
System.out.println(e + ":" + e);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame frame = new TestBreezy();
frame.setVisible(true);
}
}
怎么样, 看起来不错吧.
现在Breezy几乎支持所有的Swing EventListeners. 详细情况请查看类net.sf.breezy.event.annotations.*
当然了, 作为一个优秀的框架,还要有可扩展性,在Breezy中开发者还可以自定义自己的事件响应Annotation 来实现自己的功能. 详细情况请查看API.
数据绑定问题主要 就是 JTable 和JTree的问题:
使用Breezy来处理该问题,有点类似于Hibernate中的xml映射数据库属性字段差不多. 可以很方便的映射.
请看下面的例子: 和Breezy文档:
package test;
import java.util.Date;
public class Name {
private String name = "Starwhisperer";
private Date time = new Date();
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getTime() {
return time;
}
public void setTime(Date time) {
this.time = time;
}
}
User.java
package test;
import java.util.Date;
import net.sf.breezy.datatable.TableField;
public class User {
@TableField(head = "名称", editable = false)
private String name;
@TableField(head = "年龄", editable = false, type = "number")
private int age;
@TableField(head = "阵营", type = "boolean", editable = false)
private boolean light;
@TableField(head = "时间", type = "time", pattern = "yyyy/MM/dd")
private Date date = new Date();
@TableField(head = "名称", property = "name", type="string")
private Name nameBean = new Name();
public Name getNameBean() {
return nameBean;
}
public void setNameBean(Name nameBean) {
this.nameBean = nameBean;
}
public boolean isLight() {
return light;
}
public void setLight(boolean light) {
this.light = light;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
}
DataTableTest .java
package test;
import java.awt.BorderLayout;
import java.util.LinkedList;
import java.util.List;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import net.sf.breezy.datatable.DataTable;
import net.sf.breezy.datatable.DataTableScrollPane;
public class DataTableTest {
private JFrame mainFrm = new JFrame();
protected void setUp() {
mainFrm.setSize(100, 600);
mainFrm.setLocationRelativeTo(null);
mainFrm.setLayout(new BorderLayout());
mainFrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
DataTableTest test = new DataTableTest();
test.setUp();
test.testTable();
}
public void testTable() {
java.util.List list = new LinkedList();
for(int i = 0; i < 120; i ++) {
User u = new User();
u.setAge(33);
u.setName("Cain " + i);
list.add(u);
}
DataTableScrollPane<User> pane = DataTable.getEntityTablePane(list, User.class);
mainFrm.add(pane, BorderLayout.CENTER);
mainFrm.setVisible(true);
}
}
映射文件:datatable-mappings.xml
<?xml version="1.0"?>
<class-mapping>
<class name="test.User">
<property name="age" head="年龄" />
<property name="light" head="光芒" type="boolean" editable="true"/>
<property name="nameBean" property="time" head="姓名" pattern="yyyy/mm/dd" type="time"/>
<property name="date" head="Date"/>
<property name="name" head="Name"/>
</class>
</class-mapping>
也是很简单的吧. 关于JTree的应用也是很简单的哦. 详细情况请查看用户文档:
更多信息请关注 用户交流论坛: http://www.hexiao.cn/bbs/thread.php?fid=9
发表评论
-
学习使用Java DataBase (Derby) -- 嵌入式数据库
2006-04-13 21:19 1765学习使用Java DataBas ... -
在derby(Java DB) 中操作 clob 和 blob
2006-04-14 15:23 1507在前面一篇文章中, ... -
利用swing开源组件和netbeans快速构建豪华swing界面
2006-04-15 13:41 1449利用swing开源组件和netbeans快速构建豪华s ... -
Java Pet Store 开始全面使用 Web 2.0 技术
2006-05-16 21:58 1062Java Pet Store 开 ... -
Hibernate Validator 简介
2006-05-17 10:35 1272Hibernate Validator 简介 ... -
Google发布AJAX开发工具 Google Web Toolkit
2006-05-17 21:17 899Google Web Toolkit - Build ... -
解析 Hibernate Validator
2006-05-18 15:17 1483任何获得Matrix授权的网站,转载请保留以下作者信 ... -
Spring in Action 笔记(I)
2006-05-22 14:13 885By : icess ,我的部落格 http:// ... -
Spring in Action 笔记(II)
2006-05-25 00:04 1160... -
Spring in Action 笔记(III) -- 在Spring下的Hibernate数据操作
2006-05-27 11:01 831Spring in A ... -
Spring in Action 笔记 (IV) -- i18n问题和自定义属性编辑器
2006-05-29 11:24 986Spring in Action 笔记 (IV) -- i18 ... -
最新消息 ,开源嵌入式数据库 Derby(JavaDB) 绑定在JDK 1.6中.
2006-06-18 18:48 1716如下:Source: Fran ... -
callisto(Eclipse 3.2) 迟到了 ?
2006-06-30 23:04 783在今天早些时候访问 callisto 的主页(http://w ... -
Callisto 终于可以下载了.
2006-07-01 04:47 783Callisto 终于可以下载了. Eclipse 3.2 ... -
最近想研究一下DWR 收集一些从入门到精通的系列资料
2006-07-13 15:55 940最近想研究一下DWR 收集一些从入门到精通的系列资料, 以备将 ... -
decode javascript.encode using java
2006-08-01 13:18 1551在前面一篇文章(http://www.hexiao.cn/bl ... -
Wicket 入门示例 :Hello World.
2006-08-05 10:38 1230Wicket http://wicketframework.o ... -
Wicket 教程2: 如何使用Label,MultiLineLabel,Border,BoxBorder
2006-08-07 15:29 1406上次介绍了一个wicket的一个HelloWorld入门示例, ... -
Wicket 教程3:使用 PageView 来调试页面
2006-08-08 09:22 1568使用 PageView 来调试页面.Wicket中提供了一个P ... -
Wicket 教程4:如何使用 Include,Panel,Fragment,Link
2006-08-08 09:25 2073Wicket 教程4:如何使用 ...
相关推荐
breezy-pdf-lite-php PHP客户端,这是由Google Chrome提供支持 > PDF服务。 依存关系 BreezyPDF Lite:HTML到PDF的生成即服务 安装 composer require jitendra/breezy-pdf-lite-php 用法与范例 use BreezyPdfLite ...
一键部署,然后开始从Web应用程序或命令行生成PDF。 入门 1.提交要转换HTML 这是通过Web服务器上的POST请求完成的。 在本示例中,我们将使用一些示例HTML。 curl -X POST -H ' Authorization: Bearer PRIVATE_...
总的来说,Breezy是Java Swing开发领域的一个强大工具,它通过注解驱动的方法降低了GUI编程的复杂性,使开发者能更专注于业务逻辑,而非基础的UI操作。它的开源性质鼓励了社区的参与,推动了持续创新和改进,对Java...
安装将此行添加到您的应用程序的Gemfile中: gem 'breezy_pdf_lite' 然后执行: $ bundle或将其自己安装为: $ gem install breezy_pdf_lite用法BreezyPDFLite需要进行一些配置才能使用。 在应用程序中的某个位置...
这些在Debian中可用(尽管可能不是builddeb开发版本所需的版本)。 它还需要安装dpkg-dev软件包(对于dpkg-mergechangelogs工具): apt-get install dpkg-dev 该插件可以通过两种方式安装。因为您可能正在使用...
微风计时器 :timer_clock: Breezy计时器的目标是成为一个非常简单的计时库,可以将其放入生产代码中而不会改变最终性能。 请参阅“以获取更多信息。目的简单易用直接在生产代码中使用, 释放时无需修改代码,只需...
Breezy for Chrome提供了一种快速,简单的方法,可将来自Xing,Indeed Resumes,AngelList,Dribbble和Github的候选人吸引到您在Breezy上的职位。 这很简单。 只需浏览到受支持的服务上的用户个人资料,单击右上方的...
Breezy Weather微风天气是一款专为用户提供准确、实时天气信息的软件,无论您身处何地,都能提供精准的天气预报,包括温度、湿度、风速、降水概率等,还提供了小时级和未来几天的天气趋势,帮助做出更好的出行决策。
Breezy for Chrome提供了一种快速,简单的方法,可从LinkedIn,Xing,Indeed Resumes,AngelList,Dribbble和Github寻求候选人到Breezy的职位。这很简单。只需浏览到受支持的服务上的用户个人资料,单击右上方的...
- **主要内容**: 包括Ubuntu的基本概念、系统安装提示、软件包管理、Linux内核管理、系统微调、网关搭建、文本编辑器使用、CVS使用、程序设计、以及面向非开发者介绍的GnuPG等内容。 - **章节结构**: - 第1章: 序言...
如果您公司的招聘部门使用作为应用程序跟踪系统,则此应用程序可能会增强您的招聘分析功能。 这个应用程式可让您: 将所有候选数据存储在SQL数据库中,并根据需要完全匿名。 提供有关您当前的职位空缺,候选人以及...
"LBT"可能是库的开发者或项目团队的缩写,或者是库的核心理念——轻量级(Lightweight)、快速(Breezy)和可扩展(Tunable)的英文首字母组合。 在Python库的开发中,通常会按照一定的规范进行版本命名。在这个...
根据提供的文件信息,我们可以...综上所述,本文档主要围绕Ubuntu操作系统的使用方法进行了详细的介绍,不仅涵盖了系统的基础知识,还涉及到了许多高级功能的应用,旨在帮助初学者快速入门并掌握Ubuntu系统的基本操作。
- **多语言化**:提供了支持多种语言的方法,包括多语言应用程序的开发。 #### 十、网络设置 - **IP网络设置基础**:介绍了IP网络的基本概念和配置方法。 - **底层网络设置**:探讨了如何配置网络接口、路由表等...
- **Ubuntu发行版**:概述了不同版本的Ubuntu,包括 `hoary`、`breezy`、`dapper`、`edgy` 等,并解释了它们的含义。 - **发行版仓库**:说明了各个发行版之间的关系及如何使用不同版本的仓库。 - **Ubuntu软件包...
- **Web开发**(第196页):介绍了Web开发的基础知识及常用技术栈。 - **标准化编程**(第197页):如何遵循标准化编程规范。 - **其他编程相关话题**(第200页):涵盖了一些其他的编程相关知识和资源。 #### 十一...
- **用户友好**:Ubuntu提供了直观的图形界面,使得即使是Linux新手也能快速上手。 - **Live CD**:用户可以在不安装系统的情况下通过Live CD体验Ubuntu的功能。 - **GUI安装程序**:提供了一个图形化的安装过程,...
利用和文档类型,使用户能够辨别哪个应用程序(如果有多个)将打开/导入文件。 在下面,您将找到有关如何编辑Info.plist文件以将AirDrop接收器支持添加到您的应用程序的一些资源。 还需要处理打开文件的URL(与...
- **发行版升级**:详细说明了如何从一个版本平滑过渡到另一个版本,特别是提到的Breezy、Dapper和Edgy这几个版本的升级流程。 - **软件包管理**:深入介绍了APT的工作原理,以及如何有效地使用它来管理软件包。 - *...
- **Ubuntu 5.10 Breezy Badger** - 2005年10月发布 - **Ubuntu 6.06 Dapper Drake** - 2006年6月发布 - **Ubuntu 6.10 Edgy Eft** - 2006年10月发布 - **Ubuntu 7.04 Feisty Fawn** - 2007年4月发布 - **Ubuntu ...