Java JComboBox不显示结果
我试图在arraylist上基于for和if循环在JCombobox中设置值Java JComboBox不显示结果,java,user-interface,swing,jcombobox,Java,User Interface,Swing,Jcombobox,我试图在arraylist上基于for和if循环在JCombobox中设置值 //salesman=the name of the combobox salesman = new javax.swing.JComboBox(); DefaultComboBoxModel model = new DefaultComboBoxModel(); salesman.setModel(model); /*company is an object of Company class,
//salesman=the name of the combobox
salesman = new javax.swing.JComboBox();
DefaultComboBoxModel model = new DefaultComboBoxModel();
salesman.setModel(model);
/*company is an object of Company class, that gets set with a setter method to ensure
that the gui will be pointing to the right object. and it does contains the data i want, so
i am sure that company is not the problem */
//loop tp set box list
for (Employee current : company.getArray()){
if (current instanceof Salesman) {
salesman.addItem(current.getCode());
}
}
但是组合框保持为空。为什么会这样?是否要将组合框添加到其父容器中 只要存在销售人员实例,上述代码就可以正常工作
你说你确定公司不是目标,但你检查过你实际添加到ComboBoxModel中的内容吗?另外,您不需要实例化您自己的DefaultComboxModel,因为您可以使用JComboBox“免费”获得一个ComboxModel。您是否将ComboxModel添加到其父容器中 只要存在销售人员实例,上述代码就可以正常工作
你说你确定公司不是目标,但你检查过你实际添加到ComboBoxModel中的内容吗?此外,您不需要实例化您自己的DefaultComboxModel,因为您可以通过JComboBox获得一个“免费”的模型。如果您只是向JComboBox添加一些测试字符串,是否会显示它们 如果是,则可能是.getCode()方法有问题
另外,请尝试删除DefaultComboxModel,因为这不是必需的。如果您只是将一些测试字符串添加到JComboxModel中,是否会显示它们 如果是,则可能是.getCode()方法有问题
另外,请尝试删除DefaultComboxModel,因为这不是必需的。无论如何,我建议您执行以下操作:
无论如何,我建议你:
将项目添加到模型中,而不是直接添加到组合框中。此外,还可以使用barti_ddu的建议。将项目添加到模型中,而不是直接添加到组合框中。此外,还可以使用barti_ddu的建议。确定问题已解决!我刚刚添加到class a Company类对象的构造函数中,该对象由setCompany设置。确定问题已解决!我刚刚添加到class a Company类对象的构造函数中,该对象由setCompany设置。我编写了一个测试方法,其中我打印了“current”的值。当我在另一个JFrame中调用该方法时,tha调用这个方法(通过使用AddOrder.test();它打印两个代码(45,46),我编写了一个测试方法,其中我打印“current”的值。当我在另一个JFrame中调用该方法时,tha调用这个方法(通过使用AddOrder.test();它打印两个代码(45,46),实际上,它可能不是空的(但如果saller.getCode().toString()返回null:)实际上,它可能不是空的(但如果saller.getCode().toString()返回null:)如果手动添加saller.addItem(“blablablabla”);则它会被显示。getCode()只返回saller代码号。如果手动添加saller.addItem(“blablablablabla”);则它可能不是空的,它将被显示,只返回销售员代码。很好,您成功地解决了问题。现在,您需要将其中一个答案标记为您接受的答案-或者标记您自己的答案,或者标记您发现最有用的答案。很好,您成功地解决了问题。现在,您需要将其中一个答案标记为您接受的答案-即r标记你自己的,或你认为最有用的。