java bean 绑定,在 Java 应用程序中绑定 Bean 和数据

将组件绑定到表示数据的 Bean

本节介绍如何将数据绑定到 JTable、JList 和 JComboBox 组件。

将一个数据库表添加到窗体,并自动生成 JTable 以显示数据库表的内容:

打开 "Services"(服务)窗口。

连接到包含您要添加到窗体的表的数据库。(可以通过右键单击用于数据库连接的节点并选择 "Connect"(连接)以连接到数据库。)

*注:*本教程使用 sample [app on App] 数据库,通过选择 "Services"(服务)窗口,展开 "Databases"(数据库)节点,右键单击数据库连接节点 ( jdbc:derby://localhost:1527/sample[app on APP] ),然后从上下文菜单中选择 "Connect"(连接),可连接到该数据库。

如果系统提示您提供用户 ID 和口令,请指定 app 作为用户 ID,并指定 app 作为口令。

展开用于连接的节点,并展开其表节点。

将表节点拖到窗体并在拖至表时按住 Ctrl 键。

这将创建 JTable,并将其列绑定到数据库表中的列。

将数据库表绑定到现有的 JTable 组件:

在 GUI 构建器中右键单击该组件,然后选择 "Bind"(绑定)> "elements"(元素)。

bind-dialog-table-small.png

单击 "Import Data to Form"(将数据导入窗体)。在 "Import Data to Form"(将数据导入窗体)对话框中,选择要将组件绑定到的数据库表。单击 "OK"(确定)。

在 "Binding Source"(绑定源)组合框中,选择表示实体类结果列表的项。例如,如果调用实体类 Customer.java ,则列表对象将生成为 customerList 。

source-selected-small.png

将绑定表达式的值保留为 空值 。

如果不想在 JTable 中显示某些数据库列,请在 "Selected"(选定)列表中选择这些列,然后将它们移到 "Available"(可用)列表中。

选择 "Advanced"(高级)标签进一步配置绑定内容。例如,您可以指定验证器或转换器,或者指定绑定源为空值或不可读时的行为。

单击 "OK"(确定)。

将数据绑定到 JList 组件:

在 GUI 构建器中右键单击该组件,然后选择 "Bind"(绑定)> "elements"(元素)。

单击 "Import Data to Form"(将数据导入窗体)。在 "Import Data to Form"(将数据导入窗体)对话框中,选择要将组件绑定到的数据库表。单击 "OK"(确定)。

在 "Binding Source"(绑定源)组合框中,选择表示实体类结果列表的项。例如,如果调用实体类 Customer.java ,则列表对象将生成为 customerList 。

jlist-binding-small.png

将绑定表达式的值保留为 空值 。

在 "Display Expression"(显示表达式)下拉列表中,选择表示数据库列的属性,该列包含了要在列表中显示的值。

选择 "Advanced"(高级)标签进一步配置绑定内容。

单击 "OK"(确定)。

将数据绑定到 JComboBox 组件:

右键单击组合框,然后选择 "Bind"(绑定)> "elements"(元素)。

单击 "Import Data to Form"(将数据导入窗体)。在 "Import Data to Form"(将数据导入窗体)对话框中,选择要将组件绑定到的数据库表。单击 "OK"(确定)。

在 "Binding Source"(绑定源)组合框中,选择表示实体类结果列表的项。例如,如果调用实体类 Customer.java ,则列表对象将生成为 customerList 。

combo-binding-small.png

将绑定表达式值保留为 空值 ,然后单击 "OK"(确定)。

再次右键单击组合框,然后选择 "Bind"(绑定)> "selectedItem"。

绑定到您希望受用户选择影响的属性。

combo-item.png

单击 "OK"(确定)保存所做的编辑。

Bean 绑定库(从版本 1.2.1 起)没有 DetailBinding 类,该类用于指定如何为 JComboBox 派生 display 值。因此,您需要编写一些定制代码。一种方法是编写定制单元格呈现器,如下所示。

要正确呈现组合框,请执行以下操作:

选择组合框。

在 "Properties"(属性)窗口的 "Properties"(属性)标签中,选择呈现属性。

单击省略号 (…​) 按钮。

在属性编辑器顶部的组合框中,选择 "Custom Code"(定制代码)。

在文本区域中,输入类似以下内容的代码,其中 jComboBox1 是 JComboBox 实例的名称,MyEntityClass 是实体类,getPropertyFromMyEntityClass() 是实体类中要绑定的属性的 getter。

jComboBox1.setRenderer(new DefaultListCellRenderer() {

@Override

public Component getListCellRendererComponent(

JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {

super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);

if (value instanceof MyEntityClass) {

MyEntityClass mec = (MyEntityClass)value;

setText(mec.getPropertyFromMyEntityClass());

}

return this;

}

})

custom-small.png

*注:*您还可以在其自身的源文件中创建定制呈现器,编译文件,将呈现器拖至窗体,然后设置组合框的呈现器属性以使用此 Bean。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值