gpt4 book ai didi

java - JComboBoxes - 使用 setModel 访问对象(在 Swing 中)

转载 作者:行者123 更新时间:2023-12-03 02:54:38 26 4
gpt4 key购买 nike

简单的背景知识,我正在使用 Netbeans 来开发它(我对 Swing 没有太多经验,并且在获得开发速度的机会中失去了经验点)。在 Netbeans 中,对于可以修改哪些代码来阻止新手用户破坏代码显然是有限制的(我已经有趣地做过一次)不管怎样,我有一个对象类,这些对象有一个 name 属性。在应用程序中,我直接初始化了这些对象的数组,并将它们称为“事物”;

Objects[] things = new Objects[2];
things[0] = new Objects("The first thing");
things[1] = new Objects("The second thing");

内容和名称故意是空洞的,因为这是一个使其正常工作的测试(而不是拆解部分编写的程序)。经过一些研究和阅读后,我发现我“应该”能够使用以下代码将对象加载到 setModel 参数中;

    new javax.swing.DefaultComboBoxModel(things[].name)
//The above is the code to use within setModel, the below is the completed example
jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(things[].name));

这并没有奏效,尽管我尽了最大努力在谷歌上搜索,但这似乎太具体了,无法确定一个像样的答案。最终的结果是我想要的;“第一件事”和“第二件事”显示在下拉列表中,然后显然我可以通过引用屏幕上该对象中保存的任何其他数据来在实际程序中对此进行扩展。

任何建议甚至指示可以帮助我思考这个问题,我将不胜感激。

最佳答案

首先,DefaultComboBoxModel 的构造函数可以采用数组,但属性名称不存在于数组中,因此您不能这样做。您必须修改对象或组合框才能显示对象的正确属性。

jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(things[]));

您有多种选择:)

  1. 快速简单地覆盖 toString 以返回名称(假设 Objects 是您的类)
  2. 创建一个包装类 (ObjectsWrapper),其 toString() 方法返回对象名称
  3. 以某种方式修改 JComboBox(模型或渲染器)以显示所需的属性

关于java - JComboBoxes - 使用 setModel 访问对象(在 Swing 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3926543/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com