gpt4 book ai didi

java - 我可以将 ComboBoxModel 转换为 int 吗?

转载 作者:行者123 更新时间:2023-12-01 19:54:11 26 4
gpt4 key购买 nike

这是我的代码:

ComboBoxModel arrDiv1 = new DefaultComboBoxModel(new String[]{"Alaminos 
City", "Batac City", "Candon City", "Dagupan City",
"Ilocos Norte", "Ilocos Sur", "La Union", "Laoag City", "Pangasinan I",
"Pangasinan II", "San Carlos",
"San Fernando", "Urdaneta City", "Vigan City"});

ComboBoxModel arrDiv2 = new DefaultComboBoxModel(new String[]{"Batanes",
"Cagayan", "Cauayan City", "City of Ilagan",
"Isabela", "Nueva Vizcaya", "Quirino", "Santiago City", "Tuguegarao City"});

ComboBoxModel arrDiv3 = new DefaultComboBoxModel(new String[]{"Angeles
City", "Aurora", "Balanga City", "Bataan", "Bulacan",
"Cabanatuan City", "Gapan City", "Mabalacat City", "Malolos City",
"Meycauayan City", "Munoz Science City",
"Nueva Ecija", "Olongapo City", "Pampanga", "San Fernando City", "San Jose
City", "San Jose del Monte City",
"Tarlac", "Tarlac City", "Zambales"});


if(cboRegion.getSelectedIndex()==0) {
cboDivision.setEnabled(false);
}
else if(cboRegion.getSelectedIndex()==1) {
cboDivision.setModel(arrDiv1);
}
else if(cboRegion.getSelectedIndex()==2) {
cboDivision.setModel(arrDiv2);
}
else if(cboRegion.getSelectedIndex()==3) {
cboDivision.setModel(arrDiv3);
}

我想将其放入 for 循环中以缩短代码。

if(cboRegion.getSelectedIndex()==ctr) {
if(ctr==0) {
cboDivision.setEnabled(false);
}
cboDivision.setModel(?????);
}

但是,我不知道括号内要放什么,因为 ComboBoxModel 不是 int。我不知道该放什么。

最佳答案

这些 arrDiv1、arrDiv2 等是什么?

实际上这并不重要,问题是更一般的java,与组合框无关。如果您将它们作为命名属性,那么您实际上无法轻松添加它们。名称中的索引指出您可以将它们保存在集合中。例如:

而不是拥有

Something arrDiv1;
Something arrDiv2;
Something arrDiv3;

有类似的东西

List<Something> arrDivs=new ArrayList<>();
arrDivs.add(arrDiv1);
arrDivs.add(arrDiv2);
// etc.

这样,您将在集合中保存相似的对象,而不是将它们命名为 1、2、3 等。从长远来看,如果您需要添加更多元素(使您的代码更加通用),这将有所帮助。另一个解决方案是创建越来越多的名称中包含索引的属性。

那么你的代码可以是这样的:

if (cboRegion.getSelectedIndex() == ctr) {
if (ctr == 0) {
cboDivision.setEnabled(false);
}

// Maybe add a check for out of bounds?
cboDivision.setModel(arrDivs.get(getSelectedIndex()));
}

关于java - 我可以将 ComboBoxModel 转换为 int 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50129500/

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