2017-12-27 1301 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 ..但它不幫助我 –