将组件绑定到表示数据的 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"(元素)。

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

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

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

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

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

单击 "OK"(确定)。

将数据绑定到 JList 组件:

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

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

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

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

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

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

单击 "OK"(确定)。

将数据绑定到 JComboBox 组件:

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

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

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

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

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

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

单击 "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;

}

})

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

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

  1. 在Spring MVC应用程序中使用Bean Validation 1.1获得更好的错误消息

    在许多新功能中, Bean Validation 1.1引入了使用统一表达式语言(EL)表达式的错误消息插值. 这允许基于条件逻辑来定义错误消息,还可以启用高级格式化选项 . 添加到Spring MV ...

  2. 小程序中神秘的用户数据

    前面 上一篇文章手把手教会你小程序登录鉴权介绍了小程序如何进行登录鉴权,那么一般小程序的用户标识可以使用上文所述微信提供的jscode2session接口来换取,小程序还提供了一个getUserInf ...

  3. java怎么加定时器_JAVA WEB程序中添加定时器

    JAVA WEB程序中添加定时器 //这是我的定时器类,用来定时执行某段任务: package com.my.time; import java.text.ParseException; import ...

  4. 使用Gradle禁止Java和Spring Boot Web应用程序中的FindBugs警告

    如何在+ Spring Boot和+ Java应用程序中使用注释抑制FindBugs警告 如果您的构建由于FindBugs问题而中断,并且是假阳性,或者由于其他考虑而无法解决问题,则可以添加注释来忽略 ...

  5. java如何调用linux命令_java程序中如何调用linux命令

    java程序中如何调用linux命令 作为一个Java开发人员,有些常用的Linux命令必须掌握.即时平时开发过程中不使用Linux(Unix)或者mac系统,也需要熟练掌握Linux命令.因为很多服 ...

  6. java的单行注释符是_Java 程序中的单行注释符是( ),多行注释符是( )_学小易找答案...

    [单选题]设 x = 1 , y = 2 , z = 3 ,则表达式 y += z -- / ++ x 的值是 ( ) . [单选题]带传动中,具有准确传动比的是 [填空题]定义类的保留字是 ( ) ...

  7. 小程序中实现获取全部数据

    日常在开发小程序的时候,我们的后端服务可以采用云开发的模式,但是云开发限制每次最多获取100条的数据,如果我们需要获取全部数据,必须自己构造后端服务.本篇我们介绍一下如何获取全部数据. 定义api 微 ...

  8. html事件中写js,html标签中绑定触发事件与js中绑定触发事件写法上的区别

    html> js中方法名后加括号和不加口号的区别 按钮 var test = function(){ var span = document.createElement("span&q ...

  9. python开发的程序中以电子表格显示数据_使用 Python 读取电子表格中的数据实例详解...

    Python 是最流行.功能最强大的编程语言之一.由于它是自由开源的,因此每个人都可以使用.大多数 Fedora 系统都已安装了该语言.Python 可用于多种任务,其中包括处理逗号分隔值(CSV)数 ...

最新文章

  1. 现在很多技术知识点缺乏来龙去脉的介绍
  2. UA STAT675 统计计算I 随机数生成2 线性递归模m与Multiple Recursive Generator (MRG)
  3. ubuntu16.04版本 the system is running in low-graphics mode
  4. Java小青蛙跳台街,青蛙跳台阶问题:Java版,递归算法和循环
  5. 《DSP using MATLAB》Problem 7.4
  6. Map<String,Object>接收参数,Long类型降级为Integer,报类型转换异常
  7. 1350B. Orac and Models
  8. c语言的报告一,C语言实验报告(一).doc
  9. 理解 OpenStack 高可用(HA) (6): MySQL HA
  10. linux whois工具,Linux whois命令
  11. oracle月份相减函数,Oracle 日期函数的加减
  12. 富士施乐m115b怎么连接电脑_富士施乐m115b驱动|富士施乐DocuPrint M115b一体机驱动下载 V1.01.00 官方版 - 比克尔下载...
  13. windows 下配置nginx访问静态图片
  14. 涉及到的数据安全技术包括哪些内容
  15. 拼多多店铺的先用后付|盛天海科技
  16. 首台微型计算机,全球首台骁龙820微型电脑:DragonBoard 820c
  17. 通过evel将字符串作为函数执行函数
  18. 简述计算机数控系统的工作原理,计算机数控系统复习题-20210321010307.docx-原创力文档...
  19. 公司邮箱登录,邮件多长时间能撤回,有时间限制吗?
  20. 卷积神经网络调参技巧(2)--过拟合(Dropout)

热门文章

  1. GEO/SRA数据库
  2. 模糊集的例子(年轻 年老)
  3. 关于R和Python的安全机制
  4. webscraper多页爬取_数据收集:web scraper 多页(无规律url)抓取
  5. python subprocess库 终端命令行命令
  6. javascript 字符串中间隔固定位置插入字符
  7. 什么是embedding?
  8. 【Timbre,Amplitude,Pitch】声音的基本属性
  9. 计算机网络技术专业毕业大作业答案,计算机网络技术大作业考核要求A卷
  10. 本科计算机专业考北大软微,2022北京大学软微学院计算机智能科技考研必看经验指导(含复试解析)...