2017-12-27 448 views
0

我尝试使用jSpinners创建我的Form应用程序。为了提高效率,我将所有jSpinners都放到了ArrayList()中,并且想为每个jSpinner设置值0。 ArrayList中的如何更改jSpinners的ArrayList中的值?

declararation:

public ArrayList mylist = new ArrayList();

填充的ArrayList与jSpinners:

mylist.add(jSpinner_500_e); mylist.add(jSpinner_200_e); mylist.add(jSpinner_100_e);

而且我知道,该功能“设置(index_of_arraylist,值)允许更改某些指标ArrayList,但在我的jSpinners中是属性setValue(),用于设置某个值。

有人知道,如何使用我的ArrayList()并调整for循环中的jSpinners值?非常感谢。

回答

0

您需要更改的第一件事是将类型参数添加到您的ArrayList中,以便让编译器知道它应该期望的对象类型。变化:

public ArrayList mylist = new ArrayList();

到:

public ArrayList<JSpinner> mylist = new ArrayList<>();

你可以看到使用 “钻石经营者”(<>)的 - 它在JDK7被提出,它有助于减少一些不必要的代码和使它更清晰一点。现在,你可以尝试通过mylist行走并改变其内容价值的一些可能性:

有for-each循环 - 你可以从mylist翻译为“对于每个JSpinner做花括号中的代码:

for(JSpinner spinner : mylist) { 
    spinner.setValue(valueYouWantToSet); 
} 

达到相同的结果是创建通过ArrayList和它的每个元素的行走的迭代器指定的动作,您可以在这里看到一个例子的另一种方法:

Iterator<JSpinner> iterator = mylist.iterator(); 
while(iterator.hasNext()) { 
    it.next().setValue(valueYouWantToSet); 
} 

您还可以使用简单的for循环:

for(int i = 0; i < mylist.size(); i++) { 
    mylist.get(i).setValue(valueYouWantToSet); 
} 
+0

它不能正常工作,导致的JSpinner是无效的编译器... –

+0

你是什么意思“它不是有效的编译器”?你能提供一个确切的错误信息吗? –

+0

如果我想使用上面推荐的代码,jSpinner变量不存在...编译器提供给我创建本地变量jSpinner ..但它不帮助我 –