开发Java SWT应用程序。
2个组合框。指一间卧室的数量,一个 min ,一个 max 。
最小值具有按顺序输入的条目:(无最小值,1、2、3、4、5、6)
最大值具有按顺序输入的条目:(无最大值,1、2、3、4、5、6)
如果用户将 min 更改为显示3间卧室,则 max 组合框应更新为显示(无最大3、4、5、6),而无需更改在 max 中选择。
TLDR:复制Redfin(redfin.com)卧室的最小/最大功能。
这听起来很简单,但是我一直坚持删除/添加条目而不会触发一些超出范围的异常并更改列表。
是否有“双胞胎”“最小/最大”组合框库?我找不到我要描述的东西。如果没有,什么是解决此问题的清晰,优雅的解决方案?
到目前为止,我一次只关注一个组合框,但是它可能会泛化吗?:
void UpdateMaxBeds(int index, String text) //index and text of what was selected in min
{
for (int i = 1 ; i <= 6;i++)
{
Integer curr = Integer.getInteger(max_beds.getItem(i));
if(curr<index)
{
max_beds.remove(i);
}
}
}
答案 0 :(得分:0)
尝试在删除时添加i--
,并使用< max_list.size()
而不是像这样的硬编码<= 6
:
void UpdateMaxBeds(int index, String text) //index and text of what was selected in min
{
for (int i = 1; i < max_beds.size(); i++)
{
Integer curr = Integer.getInteger(max_beds.getItem(i));
if(curr<index)
{
max_beds.remove(i);
i--;
}
}
}
i--
使您不必跳过下一个for循环迭代中已删除元素之后的元素。 max_list.size()
使您避免尝试访问和删除超出范围的元素,因为删除会更改列表(假设列表)的大小。
此问题未解决,但不应忽略: