Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何绑定组成对象的属性_Java_Swing - Fatal编程技术网

Java 如何绑定组成对象的属性

Java 如何绑定组成对象的属性,java,swing,Java,Swing,我是新来的摇摆舞爱好者 我有一个名为Project的bean列表,每个项目都有一个对另一个名为Config的bean的引用。每个配置都有2个属性,如何使用swingbindings将bean配置的这两个属性绑定到组件以形成jframe 项目列表绑定到一个组合框。当我从(项目的)组合框中更改所选项目时,我希望刷新与表单中当前所选项目关联的对象配置中的值。尝试以下操作: 创建自己的单元渲染器,实现ListCellRenderer 将该渲染器指定给包含项目的组合框。(comboBox.setRende

我是新来的摇摆舞爱好者

我有一个名为Project的bean列表,每个项目都有一个对另一个名为Config的bean的引用。每个配置都有2个属性,如何使用swingbindings将bean配置的这两个属性绑定到组件以形成jframe

项目列表绑定到一个组合框。当我从(项目的)组合框中更改所选项目时,我希望刷新与表单中当前所选项目关联的对象配置中的值。

尝试以下操作:

  • 创建自己的单元渲染器,实现
    ListCellRenderer
  • 将该渲染器指定给包含项目的组合框。(
    comboBox.setRenderer(…)
  • 现在您可以直接将您的项目实例添加到comboBox中,并将其返回
  • getListCellRenderComponent(…)
    mehod cast
    value
    (第二个参数)中的ListCellRenderer中,投影并返回要在comboBox中显示的适当值。(可能是项目名称/标题)
  • 将侦听器添加到组合框。(可能是
    itemstener
    )并在其操作方法中获取comboBox的selected对象,它将是您的项目对象
  • 从这个项目对象中,您可以很容易地获得Config(正如您所说的,您在项目对象中引用了Config对象)对象并在框架中设置数据

  • 我不知道你说的“摇摆舞”是什么意思-你是说“摇摆舞”吗?(带/不带Netbeans?+1对自定义渲染器的很好的解释:-)我的猜测是,OP真的想要绑定…谢谢你的回答,但我发现它就像org.jdesktop.beansbinding.binding binding=org.jdesktop.beansbinding.Bindings.createAutoBinding一样(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE,jcbProject,org.jdesktop.beansbinding.ELProperty.create(${selectedItem.config.updateDatabase}),jCheckBox1,org.jdesktop.beansbinding.BeanProperty.create(“selected”);bindingGroup.addBinding(binding);表达式selectedItem.config.updateDatabase不起作用,我发现bans中返回属性名称的静态变量必须包含与变量名称完全相同的字符串。谢谢。